From: jzhou Date: Fri, 18 Feb 2011 18:53:13 +0000 (+0000) Subject: Bug fix in array initialization: handle the special case like {{null,null}} X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=commitdiff_plain;h=9d964ce6a3a8c09b353cbcd553cef5113d6a4438 Bug fix in array initialization: handle the special case like {{null,null}} --- diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index 26290be7..d5f00a29 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -664,22 +664,22 @@ public class BuildCode { outstructs.println("#define STRINGARRAYTYPE "+ (state.getArrayNumber( - (new TypeDescriptor(typeutil.getClass(TypeUtil.StringClass))).makeArray(state, true))+state.numClasses())); + (new TypeDescriptor(typeutil.getClass(TypeUtil.StringClass))).makeArray(state))+state.numClasses())); outstructs.println("#define OBJECTARRAYTYPE "+ (state.getArrayNumber( - (new TypeDescriptor(typeutil.getClass(TypeUtil.ObjectClass))).makeArray(state, true))+state.numClasses())); + (new TypeDescriptor(typeutil.getClass(TypeUtil.ObjectClass))).makeArray(state))+state.numClasses())); outstructs.println("#define STRINGTYPE "+typeutil.getClass(TypeUtil.StringClass).getId()); outstructs.println("#define CHARARRAYTYPE "+ - (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.CHAR)).makeArray(state, true))+state.numClasses())); + (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.CHAR)).makeArray(state))+state.numClasses())); outstructs.println("#define BYTEARRAYTYPE "+ - (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.BYTE)).makeArray(state, true))+state.numClasses())); + (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.BYTE)).makeArray(state))+state.numClasses())); outstructs.println("#define BYTEARRAYARRAYTYPE "+ - (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.BYTE)).makeArray(state, true).makeArray(state, true))+state.numClasses())); + (state.getArrayNumber((new TypeDescriptor(TypeDescriptor.BYTE)).makeArray(state).makeArray(state))+state.numClasses())); outstructs.println("#define NUMCLASSES "+state.numClasses()); int totalClassSize = state.numClasses() + state.numArrays(); @@ -688,7 +688,7 @@ public class BuildCode { outstructs.println("#define STARTUPTYPE "+typeutil.getClass(TypeUtil.StartupClass).getId()); outstructs.println("#define TAGTYPE "+typeutil.getClass(TypeUtil.TagClass).getId()); outstructs.println("#define TAGARRAYTYPE "+ - (state.getArrayNumber(new TypeDescriptor(typeutil.getClass(TypeUtil.TagClass)).makeArray(state, true))+state.numClasses())); + (state.getArrayNumber(new TypeDescriptor(typeutil.getClass(TypeUtil.TagClass)).makeArray(state))+state.numClasses())); } } @@ -1212,7 +1212,7 @@ public class BuildCode { if (needcomma) outclassdefs.print(", "); TypeDescriptor tdelement=arraytable[i].dereference(); - if (tdelement.isArray()||tdelement.isClass()) + if (tdelement.isArray()||tdelement.isClass()||tdelement.isNull()) outclassdefs.print("sizeof(void *)"); else outclassdefs.print("sizeof("+tdelement.getSafeSymbol()+")"); @@ -2075,7 +2075,7 @@ public class BuildCode { for(int i=0; i