diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2009-05-08 16:36:06 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2009-05-08 16:36:06 +0200 |
commit | db4f617afcd095db087dcb52e3ea603cca111da7 (patch) | |
tree | eeffcc8fb523171dc394c136acf9b8006ec4138f /nim/ccgexprs.pas | |
parent | 08bc9ac03c49db7bfcdee82f46aadf95a324e015 (diff) | |
download | Nim-db4f617afcd095db087dcb52e3ea603cca111da7.tar.gz |
version 0.7.8
Diffstat (limited to 'nim/ccgexprs.pas')
-rw-r--r-- | nim/ccgexprs.pas | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/nim/ccgexprs.pas b/nim/ccgexprs.pas index 03de5c4de..bd0c520d2 100644 --- a/nim/ccgexprs.pas +++ b/nim/ccgexprs.pas @@ -1254,15 +1254,9 @@ begin refType := skipVarGenericRange(e.sons[1].typ); InitLocExpr(p, e.sons[1], a); initLoc(b, locExpr, a.t, OnHeap); - - if optBoehmGC in gGlobalOptions then - b.r := ropef('($1) newObj(sizeof($2))', - [getTypeDesc(p.module, reftype), - getTypeDesc(p.module, skipGenericRange(reftype.sons[0]))]) - else - b.r := ropef('($1) newObj($2, sizeof($3))', - [getTypeDesc(p.module, reftype), genTypeInfo(p.module, refType), - getTypeDesc(p.module, skipGenericRange(reftype.sons[0]))]); + b.r := ropef('($1) newObj($2, sizeof($3))', + [getTypeDesc(p.module, reftype), genTypeInfo(p.module, refType), + getTypeDesc(p.module, skipGenericRange(reftype.sons[0]))]); genAssignment(p, a, b, {@set}[]); // set the object type: bt := skipGenericRange(refType.sons[0]); @@ -1279,16 +1273,10 @@ begin InitLocExpr(p, e.sons[1], a); InitLocExpr(p, e.sons[2], b); initLoc(c, locExpr, a.t, OnHeap); - if optBoehmGC in gGlobalOptions then - c.r := ropef('($1) newSeq(sizeof($2), $3)', - [getTypeDesc(p.module, seqtype), - getTypeDesc(p.module, skipGenericRange(seqtype.sons[0])), - rdLoc(b)]) - else - c.r := ropef('($1) newSeq($2, $3)', - [getTypeDesc(p.module, seqtype), - genTypeInfo(p.module, seqType), - rdLoc(b)]); + c.r := ropef('($1) newSeq($2, $3)', + [getTypeDesc(p.module, seqtype), + genTypeInfo(p.module, seqType), + rdLoc(b)]); genAssignment(p, a, c, {@set}[]); end; @@ -1945,6 +1933,7 @@ begin mSetLengthSeq: genSetLengthSeq(p, e, d); mIncl, mExcl, mCard, mLtSet, mLeSet, mEqSet, mMulSet, mPlusSet, mMinusSet, mInSet: genSetOp(p, e, d, op); + mNewString, mCopyStr, mCopyStrLast: genCall(p, e, d); mExit: genCall(p, e, d); mArrToSeq: genArrToSeq(p, e, d); mNLen..mNError: |