Mercurial > repos > rhope
diff string.rhope @ 107:e5627038b7e7
Broken attempt at perf opt
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 03 Sep 2010 08:11:51 -0400 |
parents | 439db471f595 |
children |
line wrap: on
line diff
--- a/string.rhope Tue Aug 24 23:22:45 2010 -0400 +++ b/string.rhope Fri Sep 03 08:11:51 2010 -0400 @@ -439,7 +439,12 @@ left <- "" right <- string }{ - sliceoffset <- CPOff to BOff[[string]Buffer >>, 0i32, 0i32, slicepoint] + If[[[string]Length >>]=[[string]Byte Length]] + { + sliceoffset <- Val[slicepoint] + }{ + sliceoffset <- CPOff to BOff[[string]Buffer >>, 0i32, 0i32, slicepoint] + } left <- String Slice[string, 0i32, slicepoint, sliceoffset] right <- String Slice[string, sliceoffset, [[string]Length >>]-[slicepoint], [[[string]Buffer >>]Length]-[sliceoffset]] } @@ -643,7 +648,12 @@ left <- "" right <- string }{ - sliceoffset <- CPOff to BOff[[[string]Source >>]Buffer >>, 0i32, [string]Offset >>, slicepoint] + If[[[string]Length >>]=[[string]ByteLen >>]] + { + sliceoffset <- [[string]Offset >>]+[slicepoint] + }{ + sliceoffset <- CPOff to BOff[[[string]Source >>]Buffer >>, 0i32, [string]Offset >>, slicepoint] + } left <- String Slice[[string]Source >>, [string]Offset >>, slicepoint, [sliceoffset]-[[string]Offset >>]] right <- String Slice[[string]Source >>, sliceoffset, [[string]Length >>]-[slicepoint], [[string]Byte Length]-[[sliceoffset]-[[string]Offset >>]]] }