--- 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 $'
! !