make sure h_string_update copies its subtrees

This commit is contained in:
Sven M. Hallberg 2013-05-24 22:38:14 +02:00
parent 3047fd223b
commit de4b21757e

View file

@ -248,12 +248,18 @@ void h_stringmap_put_char(HCFStringMap *m, uint8_t c, void *v)
} }
// helper for h_stringmap_update // helper for h_stringmap_update
static void *combine_stringmap(void *v1, void *v2) static void *combine_stringmap(void *v1, const void *v2)
{ {
h_stringmap_update((HCFStringMap *)v1, (HCFStringMap *)v2); HCFStringMap *m1 = v1;
return v1; const HCFStringMap *m2 = v2;
if(!m1)
m1 = h_stringmap_new(m2->arena);
h_stringmap_update(m1, m2);
return m1;
} }
/* Note: Does *not* reuse submaps from n in building m. */
void h_stringmap_update(HCFStringMap *m, const HCFStringMap *n) void h_stringmap_update(HCFStringMap *m, const HCFStringMap *n)
{ {
if(n->epsilon_branch) if(n->epsilon_branch)