Mercurial > repos > rhope
diff string.rhope @ 153:d86df83402f3
Small performance optimization in string lib
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 Dec 2010 04:11:29 +0000 |
parents | fc3815b7462f |
children | ed70399a07aa |
line wrap: on
line diff
--- a/string.rhope Sun Dec 05 18:04:54 2010 -0500 +++ b/string.rhope Tue Dec 21 04:11:29 2010 +0000 @@ -446,7 +446,9 @@ 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]] } @@ -650,7 +652,9 @@ left <- "" right <- string }{ - sliceoffset <- CPOff to BOff[[[string]Source >>]Buffer >>, 0i32, [string]Offset >>, slicepoint] + If[[[string]Length]=[[string]Byte Length]] + { 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 >>]]] }