- /* Warn clients to refresh any pointers they might be holding */
- shared_header->directory_offset =
- stat_segment_offset (shared_header, sm->directory_vector);
+ /* Back to stats segment */
+ clib_mem_set_heap (sm->heap); /* Re-enter stat segment */
+
+ if (next_vector_index == vector_index)
+ {
+ memcpy (e.name, name, vec_len (name));
+ e.name[vec_len (name)] = '\0';
+ e.type = STAT_DIR_TYPE_ERROR_INDEX;
+ e.offset = index;
+ e.offset_vector = 0;
+ vec_add1 (sm->directory_vector, e);
+
+ /* Warn clients to refresh any pointers they might be holding */
+ shared_header->directory_offset =
+ stat_segment_offset (shared_header, sm->directory_vector);
+ }