From 8dcf5a001b87ec96322b3b65f0962a76c0cd3d2d Mon Sep 17 00:00:00 2001 From: bdemsky Date: Tue, 15 Apr 2008 20:44:46 +0000 Subject: [PATCH] bug fixes to prefetch printing code --- Robust/src/IR/Flat/BuildCode.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index e4a72206..83ca049b 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -1557,8 +1557,8 @@ public class BuildCode { if (maybenull) { if (!teststr.equals("")) teststr+="&&"; - teststr+="prefptr="+basestr; - basestr="((struct"+lasttype.getSafeSymbol()+"*)prefptr)->"+fd.getSafeSymbol(); + teststr+="((prefptr="+basestr+")!=NULL)"; + basestr="((struct "+lasttype.getSafeSymbol()+" *)prefptr)->"+fd.getSafeSymbol(); } else { basestr=basestr+"->"+fd.getSafeSymbol(); maybenull=true; @@ -1566,16 +1566,16 @@ public class BuildCode { lasttype=fd.getType(); } else { IndexDescriptor id=(IndexDescriptor)desc; - indexcheck="(tmpindex="; + indexcheck="((tmpindex="; for(int j=0;j=0)&&(tmpindex<((struct ArrayObject *)prefptr)->___length___)"; + indexcheck+=id.offset+")>=0)&&(tmpindex<((struct ArrayObject *)prefptr)->___length___)"; if (!teststr.equals("")) teststr+="&&"; - teststr+="(((prefptr="+basestr+")!= NULL) &&"+indexcheck; - basestr="((void **)(((char *) &(((struct ArrayObject*)prefptr)->___length___))+sizeof(int)))[tmpindex]"; + teststr+="((prefptr="+basestr+")!= NULL) &&"+indexcheck; + basestr="((void **)(((char *) &(((struct ArrayObject *)prefptr)->___length___))+sizeof(int)))[tmpindex]"; maybenull=true; lasttype=lasttype.dereference(); } @@ -1585,7 +1585,7 @@ public class BuildCode { if (teststr.equals("")) { oid="((unsigned int)"+basestr+")"; } else { - oid="(unsigned int)("+teststr+")?"+basestr+":NULL)"; + oid="((unsigned int)(("+teststr+")?"+basestr+":NULL))"; } oids.add(oid); -- 2.34.1