Lines Matching defs:sm
221 StringMap* sm = malloc(sizeof(StringMap));
222 sm->sm_size = 10;
223 sm->sm_used = 0;
224 sm->maplets = malloc(10 * sizeof(Maplet));
225 return sm;
228 static void delete_StringMap ( StringMap* sm )
230 assert(sm->maplets != NULL);
231 free(sm->maplets);
232 sm->maplets = NULL;
233 free(sm);
236 static void ensure_StringMap ( StringMap* sm )
240 assert(sm->maplets != NULL);
241 if (sm->sm_used < sm->sm_size)
243 sm->sm_size *= 2;
244 mp2 = malloc(sm->sm_size * sizeof(Maplet));
245 for (i = 0; i < sm->sm_used; i++)
246 mp2[i] = sm->maplets[i];
247 free(sm->maplets);
248 sm->maplets = mp2;
251 static void* search_StringMap ( StringMap* sm, char* name )
254 for (i = 0; i < sm->sm_used; i++)
255 if (0 == strcmp(name, sm->maplets[i].mp_name))
256 return sm->maplets[i].mp_addr;
260 static void addto_StringMap ( StringMap* sm, char* name, void* addr )
262 ensure_StringMap(sm);
263 sm->maplets[sm->sm_used].mp_name = name;
264 sm->maplets[sm->sm_used].mp_addr = addr;
265 sm->sm_used++;
268 static void paranoid_addto_StringMap ( StringMap* sm, char* name, void* addr )
270 if (search_StringMap(sm,name) != NULL) {
274 addto_StringMap(sm,name,addr);