From e348021c513f36d0b0d1d97feade5a370fbf2f21 Mon Sep 17 00:00:00 2001 From: "zik.saleeba" Date: Tue, 10 Feb 2009 22:25:20 +0000 Subject: [PATCH] Fixed some egregious bugs git-svn-id: http://picoc.googlecode.com/svn/trunk@72 21eae674-98b7-11dd-bd71-f92a316d2d60 --- parse.c | 4 ++-- picoc.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/parse.c b/parse.c index cb78360..5853ad9 100644 --- a/parse.c +++ b/parse.c @@ -138,9 +138,9 @@ int ParseValue(struct ParseState *Parser, struct Value **Result, int ResultOnHea ProgramFail(Parser, "can't get the address of this"); VariableStackPop(Parser, *Result); - *Result = VariableAllocValueFromType(Parser, Typ, TypeGetMatching(Parser, *Result, TypePointer, 0, StrEmpty)); + *Result = VariableAllocValueFromType(Parser, TypeGetMatching(Parser, (*Result)->Typ, TypePointer, 0, StrEmpty), ResultOnHeap); (*Result)->Val->Pointer.Segment = LocalLValue; - (*Result)->Val->Pointer.Offset = 0; + (*Result)->Val->Pointer.Data.Offset = 0; break; case TokenIdentifier: diff --git a/picoc.h b/picoc.h index 518a1b5..039f44a 100644 --- a/picoc.h +++ b/picoc.h @@ -231,6 +231,7 @@ void Parse(const char *FileName, const char *Source, int SourceLen, int RunIt); void TypeInit(); int TypeSizeof(struct ValueType *Typ); void TypeParse(struct ParseState *Parser, struct ValueType **Typ, const char **Identifier); +struct ValueType *TypeGetMatching(struct ParseState *Parser, struct ValueType *ParentType, enum BaseType Base, int ArraySize, const char *Identifier); /* intrinsic.c */ void IntrinsicInit(struct Table *GlobalTable);