Ejemplo n.º 1
0
AttrList new_AttrList(void){
   AttrList newList = INVALID_ATTRLIST;
   int      i;
   
   if(!poolInitialized) initPool();
   if(poolUsed == (poolSize - 1)) growPool();
   newList = getNewID();
   if(newList != INVALID_ATTRLIST){
      for(i = 0; i < poolSize; ++i){
         if(attrListPool[i].id == INVALID_ATTRLIST){
            break;
         }
      }
      attrListPool[i].id = newList;
      if(attrListPool[i].data != NULL){
         gcFree(attrListPool[i].data);
      }
      if(attrListPool[i].keys != NULL){
         gcFree(attrListPool[i].keys);
      }
      attrListPool[i].size = 0;
      attrListPool[i].keys = NULL;
      attrListPool[i].data = NULL;
      poolUsed++;
   }
   return newList;
}
Ejemplo n.º 2
0
void recursive_Node_Delete(struct_BTree_Node node){
	if(!node)
		return;
	
	if(node->left != NULL)
		recursive_Node_Delete(node->left);
	if(node->right != NULL)
		recursive_Node_Delete(node->right);
	
	gcFree(node->data);
	gcFree(node);
}
Ejemplo n.º 3
0
void deletePool(void){
   int i;

   if(attrListPool != NULL){
      for(i = 0; i < poolSize; ++i){
         if(attrListPool[i].data != NULL){
            gcFree(attrListPool[i].data);
         }
         if(attrListPool[i].keys != NULL){
            gcFree(attrListPool[i].keys);
         }
      }
      gcFree(attrListPool);
   }
}
Ejemplo n.º 4
0
ERROR interpret(SYMBOL_TABLE* table)
{
	STACK_PTR stack;
	ERROR err;
	stack = gcMalloc(sizeof(struct STACK));
	stackInit(stack);
	
	/// ----- POZNAMKA ----- 
	err = recursive_interpret(table->curr,stack);

	stackFree(stack);
	gcFree(stack);
	return err;
}