compiler/PPCDistinctResultStrategy.st
changeset 524 f6f68d32de73
parent 515 b5316ef15274
--- a/compiler/PPCDistinctResultStrategy.st	Mon Aug 17 12:13:16 2015 +0100
+++ b/compiler/PPCDistinctResultStrategy.st	Mon Aug 24 15:34:14 2015 +0100
@@ -11,10 +11,6 @@
 
 !PPCDistinctResultStrategy methodsFor:'as yet unclassified'!
 
-recordFailure: retval
-    ^ self recordFailure: retval offset: 0
-!
-
 recordFailure: retval offset: offset
     offset == 0 ifTrue: [ 
         codeGen codeRecordDistinctMatch: nil.
@@ -23,10 +19,6 @@
     codeGen codeRecordDistinctMatch: nil offset: offset 
 !
 
-recordMatch: retval
-    ^ self recordMatch: retval offset: 0
-!
-
 recordMatch: retval offset: offset
     offset == 0 ifTrue: [ 
         codeGen codeRecordDistinctMatch: retval.
@@ -40,6 +32,24 @@
     ^ codeGen code: 'self resetDistinct.'.
 !
 
+returnFailure: retval offset: offset
+    (offset == 0) ifFalse: [ 
+        codeGen codeIf: 'currentChar isNil' then: nil else: [ 
+         	codeGen code: ('context skip: -', offset asString); codeDot.
+        ]
+    ].
+
+    codeGen codeReturn: [ codeGen codeRecordDistinctFailure: nil ].
+!
+
+returnMatch: retval offset: offset
+    (offset == 0) ifFalse: [ 
+        codeGen code: 'self back.'.
+    ].
+
+    codeGen codeReturn: [ codeGen codeRecordDistinctMatch: retval ].
+!
+
 returnResult: state
     codeGen codeNl.
     codeGen codeReturnDistinct.