+ RecTypes p = (RecTypes) nmem_malloc (data1_nmem_get (dh), sizeof(*p));
+
+ p->dh = dh;
+ p->entries = 0;
+ return p;
+}
+
+void recTypes_destroy (RecTypes rts)
+{
+ struct recTypeEntry *rte;
+
+ for (rte = rts->entries; rte; rte = rte->next)
+ if (rte->init_flag)
+ (*(rte->recType)->destroy)(rte->clientData);
+}
+
+void recTypes_add_handler (RecTypes rts, RecType rt)
+{
+ struct recTypeEntry *rte;
+
+ rte = (struct recTypeEntry *)
+ nmem_malloc (data1_nmem_get (rts->dh), sizeof(*rte));
+
+ rte->recType = rt;
+ rte->init_flag = 0;
+ rte->clientData = 0;
+ rte->next = rts->entries;
+ rts->entries = rte;
+}
+
+RecType recType_byName (RecTypes rts, const char *name, char *subType,
+ void **clientDataP)
+{
+ struct recTypeEntry *rte;