for( fcn = Script->Functions; fcn; fcn = fcn->Next )
{
+// printf("fcn = %p, fcn->Name = %p\n", fcn, fcn->Name);
ptr = ret;
WRITE_32(Buffer, ret, 0); // Next
WRITE_STR(Buffer, ret, fcn->Name);
size_t baseOfs = Offset;
if(!Node) {
- fprintf(stderr, "Possible Bug - NULL passed to AST_WriteNode\n");
+ //fprintf(stderr, "Possible Bug - NULL passed to AST_WriteNode\n");
+ WRITE_32(Buffer, Offset, 0);
+ WRITE_16(Buffer, Offset, NODETYPE_NOP);
+ WRITE_16(Buffer, Offset, 0); // Line (0)
return 0;
}
WRITE_STR(Buffer, Offset, Node->DefVar.Name);
WRITE_NODELIST(Buffer, Offset, Node->DefVar.LevelSizes);
+ Offset += AST_WriteNode(Buffer, Offset, Node->DefVar.InitialValue);
break;
// Scope Reference
AST_FreeNode(node);
node = savedNext;
}
+ AST_FreeNode(Node->DefVar.InitialValue);
break;
// Unary Operations
ret->DefVar.DataType = Type;
ret->DefVar.LevelSizes = NULL;
+ ret->DefVar.LevelSizes_Last = NULL;
+ ret->DefVar.InitialValue = NULL;
strcpy(ret->DefVar.Name, Name);
return ret;