Tools__BreakpointService.st
branchjv
changeset 12229 5c129972b1fd
parent 12130 764a3c16d308
child 12255 f3aabcc20321
--- a/Tools__BreakpointService.st	Wed Apr 11 17:14:22 2012 +0100
+++ b/Tools__BreakpointService.st	Fri Apr 13 14:15:47 2012 +0100
@@ -188,7 +188,7 @@
 recompile
     "recompile the current method for changed breakpoints"
 
-    |method|
+    |method newMethod compiler|
 
     method := codeView methodHolder value.
     (method notNil and:[method hasPrimitiveCode not]) ifTrue:[
@@ -200,18 +200,23 @@
             breakpoints do:[:bp | bp isReached:false].
 
             Class withoutUpdatingChangesDo:[
-                ByteCodeCompilerWithBreakpointSupport new
-                    breakpoints:breakpoints;
+                compiler := ByteCodeCompilerWithBreakpointSupport new.
+                compiler breakpoints:breakpoints.
+                newMethod := compiler
+                            compile:method source
+                            forClass:method mclass 
+                            inCategory:method category 
+                            notifying:nil
+                            install:false 
+                            skipIfSame:false 
+                            silent:true 
+                            foldConstants:true
+                            ifFail:[ self halt ].
 
-                    compile:method source
-                    forClass:method mclass 
-                    inCategory:method category 
-                    notifying:nil
-                    install:true 
-                    skipIfSame:false 
-                    silent:true 
-                    foldConstants:true
-                    ifFail:[ self halt ].
+                (method mclass primAddSelector:method selector withMethod:newMethod) ifFalse:[
+                    self halt.
+                    ^ self
+                ].
             ].
 "/ self halt.
             breakpoints := breakpoints 
@@ -290,13 +295,13 @@
 !BreakpointService class methodsFor:'documentation'!
 
 version
-    ^ '$Id: Tools__BreakpointService.st 7856 2012-01-30 20:09:58Z vranyj1 $'
+    ^ '$Id: Tools__BreakpointService.st 7978 2012-04-13 13:15:47Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.11 2012/01/27 13:08:07 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.12 2012/03/23 18:10:47 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: Tools__BreakpointService.st 7856 2012-01-30 20:09:58Z vranyj1 $'
+    ^ '$Id: Tools__BreakpointService.st 7978 2012-04-13 13:15:47Z vranyj1 $'
 ! !