- if (PN_HEADSPACE() < bytes) \r
- { pagenode_head->next = (struct pagenode_t*) calloc(PN_ALLOCSIZE);\r
- pagenode_head = pagenode_head->next;\r
- pagenode_head->head = pagenode_head->root;\r
+ else\r
+ { setld->namelist_head->nextsib = struct_alloc(ir_namelist_t);\r
+ setld->namelist_head = setld->namelist_head->nextsib;\r
+ }\r
+ setld->namelist_head->name = name_alloc(name);\r
+ return setld;\r
+}\r
+\r
+union ir_setdata_t* ir_link\r
+( enum ltype link_type,\r
+ struct ir_setld_t* setld,\r
+ uint8_t* name\r
+)\r
+{ struct ir_link_t* link;\r
+ link = struct_alloc(ir_link_t);\r
+ link->header.type = LDAT;\r
+ link->type = link_type; \r
+ link->classld = setld->classld;\r
+ link->setld = setld;\r
+ if (link_type != OLINK && name != NULL)\r
+ link->header.data_name = name_alloc(name);\r
+ return (union ir_setdata_t*) link;\r
+}\r
+\r
+\r
+static\r
+void* stack_alloc\r
+( size_t bytes )\r
+{ if (!bytes) //valid behavior to attain current head\r
+ return datapages.head->header.head;\r
+ if (PL_HEADMEM(datapages) < bytes) \r
+ { datapages.head->header.next = (struct pagenode_t*) calloc(datapages.pagesize,1);\r
+ if (datapages.head->header.next == NULL)\r
+ eprint("Memory allocation error \n");\r
+ datapages.head = datapages.head->header.next; \r
+ datapages.head->header.head = datapages.head->root;\r