--- a/src/JavaClassReader.st Tue Dec 06 01:01:12 2011 +0000
+++ b/src/JavaClassReader.st Tue Dec 06 09:02:10 2011 +0000
@@ -25,7 +25,7 @@
constSlot classBeingLoaded'
classVariableNames:'Verbose AnnotationsVerbose Silent AbsolutelySilent
LazyClassLoading InvalidClassFormatSignal ClassLoaderQuerySignal
- JavaArchiveCache'
+ JavaArchiveCache MaxStackDepth'
poolDictionaries:'JavaConstants'
category:'Languages-Java-Support'
!
@@ -72,6 +72,7 @@
ClassLoaderQuerySignal := QuerySignal new.
JavaArchiveCache := CacheDictionary new: 32.
AnnotationsVerbose := false.
+ MaxStackDepth := 0.
"
JavaClassReader initialize"
@@ -79,7 +80,7 @@
"Modified: / 27-01-1998 / 17:54:23 / cg"
"Modified: / 17-12-2010 / 17:37:45 / Marcel Hlopko <hlopik@gmail.com>"
"Modified: / 10-05-2011 / 23:59:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 26-07-2011 / 17:21:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-12-2011 / 10:00:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaClassReader class methodsFor:'Signal constants'!
@@ -1879,6 +1880,9 @@
((minorVsn > 2) or:[majorVsn > 45]) ifTrue:[
"/ should be:
max_stack := inStream nextUnsignedShortMSB:msb.
+ "/ Remember max stack depth so far, will be used to
+ "/ optimize context size as alloca() won't work.
+ MaxStackDepth := MaxStackDepth max: max_stack.
max_locals := inStream nextUnsignedShortMSB:msb.
code_length := inStream nextUnsignedLongMSB:msb.
@@ -1948,7 +1952,7 @@
"Created: / 15-04-1996 / 15:40:17 / cg"
"Modified: / 16-05-1998 / 01:39:42 / cg"
- "Modified: / 17-12-2010 / 00:24:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-12-2011 / 10:01:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readExceptionsAttributeFor:aJavaMethod