PgfUnmarshaller now mimics a C++ class. Allows for keeping state

This commit is contained in:
krangelov
2021-08-13 18:14:56 +02:00
parent 08bcd2f0b5
commit 221f0b7853
4 changed files with 113 additions and 91 deletions

View File

@@ -4,17 +4,23 @@
void hs_free_unmarshaller(PgfUnmarshaller *unmarshaller)
{
hs_free_fun_ptr((HsFunPtr) unmarshaller->eabs);
hs_free_fun_ptr((HsFunPtr) unmarshaller->eapp);
hs_free_fun_ptr((HsFunPtr) unmarshaller->elit);
hs_free_fun_ptr((HsFunPtr) unmarshaller->emeta);
hs_free_fun_ptr((HsFunPtr) unmarshaller->efun);
hs_free_fun_ptr((HsFunPtr) unmarshaller->evar);
hs_free_fun_ptr((HsFunPtr) unmarshaller->etyped);
hs_free_fun_ptr((HsFunPtr) unmarshaller->eimplarg);
hs_free_fun_ptr((HsFunPtr) unmarshaller->lint);
hs_free_fun_ptr((HsFunPtr) unmarshaller->lflt);
hs_free_fun_ptr((HsFunPtr) unmarshaller->lstr);
hs_free_fun_ptr((HsFunPtr) unmarshaller->dtyp);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->eabs);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->eapp);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->elit);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->emeta);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->efun);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->evar);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->etyped);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->eimplarg);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->lint);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->lflt);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->lstr);
hs_free_fun_ptr((HsFunPtr) unmarshaller->vtbl->dtyp);
free(unmarshaller->vtbl);
free(unmarshaller);
}
void hs_free_reference(PgfUnmarshaller *unmarshaller, uintptr_t ref)
{
hs_free_stable_ptr((HsStablePtr) ref);
}