globle struct fact *CreateFactBySize( int size) { struct fact *theFact; int newSize; if (size <= 0) newSize = 1; else newSize = size; theFact = get_var_struct2(fact,sizeof(struct field) * (newSize - 1)); theFact->depth = (unsigned) CurrentEvaluationDepth; theFact->garbage = FALSE; theFact->factIndex = 0L; theFact->factHeader.busyCount = 0; theFact->factHeader.theInfo = &FactInfo; #if LOGICAL_DEPENDENCIES theFact->factHeader.dependents = NULL; #endif theFact->whichDeftemplate = NULL; theFact->nextFact = NULL; theFact->previousFact = NULL; theFact->list = NULL; theFact->theProposition.multifieldLength = size; theFact->theProposition.depth = (short) CurrentEvaluationDepth; theFact->theProposition.busyCount = 0; return(theFact); }
globle void *EnvCreateMultifield( void *theEnv, unsigned long size) { struct multifield *theSegment; unsigned long newSize; if (size <= 0) newSize = 1; else newSize = size; theSegment = get_var_struct2(theEnv,multifield,(long) sizeof(struct field) * (newSize - 1L)); theSegment->multifieldLength = size; theSegment->depth = (short) EvaluationData(theEnv)->CurrentEvaluationDepth; theSegment->busyCount = 0; theSegment->next = NULL; theSegment->next = MultifieldData(theEnv)->ListOfMultifields; MultifieldData(theEnv)->ListOfMultifields = theSegment; UtilityData(theEnv)->EphemeralItemCount++; UtilityData(theEnv)->EphemeralItemSize += sizeof(struct multifield) + (sizeof(struct field) * newSize); return((void *) theSegment); }
globle void *CreateMultifield2( long size) { struct multifield *theSegment; long newSize = size; /* 6.04 Bug Fix */ if (size <= 0) newSize = 1; theSegment = get_var_struct2(multifield,(long) sizeof(struct field) * (newSize - 1L)); theSegment->multifieldLength = size; theSegment->depth = (short) CurrentEvaluationDepth; theSegment->busyCount = 0; theSegment->next = NULL; return((void *) theSegment); }
globle void *CreateMultifield2( void *theEnv, unsigned long size) { struct multifield *theSegment; unsigned long newSize = size; if (size <= 0) newSize = 1; theSegment = get_var_struct2(theEnv,multifield,(long) sizeof(struct field) * (newSize - 1L)); theSegment->multifieldLength = size; theSegment->depth = (short) EvaluationData(theEnv)->CurrentEvaluationDepth; theSegment->busyCount = 0; theSegment->next = NULL; return((void *) theSegment); }
globle void *CreateMultifield( long size) { struct multifield *theSegment; long newSize; if (size <= 0) newSize = 1; else newSize = size; theSegment = get_var_struct2(multifield,(long) sizeof(struct field) * (newSize - 1L)); theSegment->multifieldLength = size; theSegment->depth = (short) CurrentEvaluationDepth; theSegment->busyCount = 0; theSegment->next = NULL; theSegment->next = ListOfMultifields; ListOfMultifields = theSegment; EphemeralItemCount++; EphemeralItemSize += sizeof(struct multifield) + (sizeof(struct field) * newSize); return((void *) theSegment); }