Changeset 283
- Timestamp:
- 04/15/08 10:22:26 (8 months ago)
- Files:
-
- trunk/minid/baselib.d (modified) (4 diffs)
- trunk/minid/types.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/minid/baselib.d
r257 r283 856 856 public int opSlice(MDState s, uint numParams) 857 857 { 858 s.push(s.getContext!(MDStringBuffer)()[s.getParam!(int)(0) .. s.getParam!(int)(1)]); 858 int lo, hi; 859 860 if(s.isParam!("null")(0)) 861 lo = 0; 862 else 863 lo = s.getParam!(int)(0); 864 865 if(s.isParam!("null")(1)) 866 hi = -1; 867 else 868 hi = s.getParam!(int)(1); 869 870 s.push(s.getContext!(MDStringBuffer)()[lo .. hi]); 859 871 return 1; 860 872 } … … 862 874 public int opSliceAssign(MDState s, uint numParams) 863 875 { 864 s.getContext!(MDStringBuffer)()[s.getParam!(int)(0) .. s.getParam!(int)(1)] = s.getParam!(dchar[])(2); 876 int lo, hi; 877 878 if(s.isParam!("null")(0)) 879 lo = 0; 880 else 881 lo = s.getParam!(int)(0); 882 883 if(s.isParam!("null")(1)) 884 hi = -1; 885 else 886 hi = s.getParam!(int)(1); 887 888 s.getContext!(MDStringBuffer)()[lo .. hi] = s.getParam!(dchar[])(2); 865 889 return 0; 866 890 } … … 1030 1054 hi += mLength; 1031 1055 1032 if(lo < 0 || lo > hi || hi > =mLength)1056 if(lo < 0 || lo > hi || hi > mLength) 1033 1057 throw new MDException("Invalid indices: {} .. {}", lo, hi); 1034 1058 … … 1044 1068 hi += mLength; 1045 1069 1046 if(lo < 0 || lo > hi || hi > =mLength)1070 if(lo < 0 || lo > hi || hi > mLength) 1047 1071 throw new MDException("Invalid indices: {} .. {}", lo, hi); 1048 1072 trunk/minid/types.d
r282 r283 3969 3969 else 3970 3970 { 3971 mStackIndex = funcSlot + numReturns;3971 mStackIndex = mCurrentAR.base + funcSlot + numReturns; 3972 3972 return numReturns; 3973 3973 } … … 3990 3990 else 3991 3991 { 3992 mStackIndex = funcSlot + numReturns;3992 mStackIndex = mCurrentAR.base + funcSlot + numReturns; 3993 3993 return numReturns; 3994 3994 }
