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 >>]]]
 		}