#REFACTORING by exept cvs_MAIN
authorClaus Gittinger <cg@exept.de>
Sun, 23 Feb 2020 14:10:52 +0100
branchcvs_MAIN
changeset 3999 d7c199709abd
parent 3998 183ab41fbdbd
child 4000 76dc79cc42a2
#REFACTORING by exept class: JavaMethod changed: #decompileSourceTo:
JavaMethod.st
--- a/JavaMethod.st	Sun Feb 23 14:05:31 2020 +0100
+++ b/JavaMethod.st	Sun Feb 23 14:10:52 2020 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1996-2015 by Claus Gittinger
 
@@ -1629,82 +1627,74 @@
     |argNames|
 
     byteCode isNil ifTrue:[
-	self isPublic ifTrue:[
-	    aStream nextPutAll:'public '.
-	].
-	self isProtected ifTrue:[
-	    aStream nextPutAll:'protected '.
-	].
-	self isPrivate ifTrue:[
-	    aStream nextPutAll:'private '.
-	].
-	self isStatic ifTrue:[
-	    aStream nextPutAll:'static '.
-	].
-
-	self isNative ifTrue:[
-	    aStream nextPutAll:'native '.
-	].
-	self isAbstract ifTrue:[
-	    aStream nextPutAll:'abstract '.
-	].
-	argNames := #('arg1' 'arg2' 'arg3' 'arg4' 'arg5' 'arg6' 'arg7' 'arg8' 'arg9').
-	aStream nextPutAll:(self signatureNameWithArgNames:argNames).
-	aStream nextPutAll:';'; cr.
-	^ self
+        self isPublic ifTrue:[
+            aStream nextPutAll:'public '.
+        ].
+        self isProtected ifTrue:[
+            aStream nextPutAll:'protected '.
+        ].
+        self isPrivate ifTrue:[
+            aStream nextPutAll:'private '.
+        ].
+        self isStatic ifTrue:[
+            aStream nextPutAll:'static '.
+        ].
+
+        self isNative ifTrue:[
+            aStream nextPutAll:'native '.
+        ].
+        self isAbstract ifTrue:[
+            aStream nextPutAll:'abstract '.
+        ].
+        argNames := #('arg1' 'arg2' 'arg3' 'arg4' 'arg5' 'arg6' 'arg7' 'arg8' 'arg9').
+        aStream nextPutAll:(self signatureNameWithArgNames:argNames).
+        aStream nextPutLine:';'.
+        ^ self
     ].
 
     "
     JavaDeparser isNil ifTrue:[
-	aStream nextPutAll:'// Sorry - no decompiler'.
-	^ self
+        aStream nextPutAll:'// Sorry - no decompiler'.
+        ^ self
     ].
     "
 
 
 "/    self isNative ifFalse:[
 "/        self isAbstract ifFalse:[
-	    aStream nextPutAll:'// source not available...'; cr.
-	    SignalSet anySignal handle:[:ex |
-		ex creator == Object haltSignal ifTrue:[ex reject].
-		ex creator == MessageTracer breakpointSignal ifTrue:[ex reject].
-		ex creator == Signal noHandlerSignal ifTrue:[ex reject].
-
-		aStream nextPutAll:'error while decompiling:'.
-		aStream cr; cr; spaces:4.
-		aStream nextPutAll:ex errorString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender sender printString.
-		aStream cr.
-		aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender sender sender printString.
-		aStream cr.
-
-		"
-		JavaByteCodeDisassembler isNil ifTrue:[
-		    aStream nextPutAll:'// Sorry - no decompiler'
-		] ifFalse:[
-		    JavaByteCodeDisassembler diassemble:self to:aStream.
-		].
-		"
-		ex return
-	    ] do:[
-		"aStream nextPutAll:(JavaDeparser decompile:self)."
-		JavaByteCodeDisassembler diassemble:self to:aStream.
-	    ].
+            aStream nextPutAll:'// source not available...'; cr.
+            SignalSet anySignal handle:[:ex |
+                |exClass con|
+                
+                exClass := ex creator.
+                ((exClass == Object haltSignal)
+                  or:[ (exClass == MessageTracer breakpointSignal)
+                  or:[ exClass == Signal noHandlerSignal ]]
+                ) ifTrue:[
+                    ex reject
+                ].
+
+                aStream nextPutLine:'error while decompiling:'.
+                aStream cr; spaces:4.
+                aStream nextPutLine:ex errorString.
+                con := ex suspendedContext.
+                10 timesRepeatWithExit:[:exit |
+                    aStream spaces:4; nextPutLine:con printString.
+                    (con := con sender) isNil ifTrue:[exit value].
+                ].    
+
+                "
+                JavaByteCodeDisassembler isNil ifTrue:[
+                    aStream nextPutAll:'// Sorry - no decompiler'
+                ] ifFalse:[
+                    JavaByteCodeDisassembler diassemble:self to:aStream.
+                ].
+                "
+                ex return
+            ] do:[
+                "aStream nextPutAll:(JavaDeparser decompile:self)."
+                JavaByteCodeDisassembler diassemble:self to:aStream.
+            ].
 "/        ].
 "/    ].
 
@@ -2340,7 +2330,7 @@
     "return a string as className>>selector. Used with debugging."
 
     "/ in order to not break existing code which parses those strings,
-    "/ do not replace '>>' by ' » '
+    "/ do not replace '>>' by ' » '
     ^ javaClass name , '>>' , (self printStringForBrowserWithSelector:nil inClass:nil)
 
     "Created: / 13-06-2013 / 08:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"