make sure h_string_update copies its subtrees
This commit is contained in:
parent
3047fd223b
commit
de4b21757e
1 changed files with 9 additions and 3 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue