checkin from browser
authorcg
Sat, 09 Jan 1999 00:12:22 +0000
changeset 535 4de9e793b358
parent 534 bd64d453373f
child 536 25785e87af38
checkin from browser
JavaVM.st
--- a/JavaVM.st	Fri Jan 08 19:25:24 1999 +0000
+++ b/JavaVM.st	Sat Jan 09 00:12:22 1999 +0000
@@ -2567,9 +2567,9 @@
                 "/ on the fly, release any monitor
                 method isSynchronized ifTrue:[
                     method isStatic ifTrue:[
-                        self monitorExit:(method javaClass)
+                        self _MONITOREXIT:(method javaClass)
                     ] ifFalse:[
-                        self monitorExit:(srchCon receiver)
+                        self _MONITOREXIT:(srchCon receiver)
                     ]
                 ]
             ]
@@ -2615,7 +2615,7 @@
     Processor activeProcess terminate.
 
     "Created: / 7.1.1998 / 15:28:22 / cg"
-    "Modified: / 8.1.1999 / 17:16:12 / cg"
+    "Modified: / 9.1.1999 / 00:41:46 / cg"
 !
 
 throwExceptionClassName:aJavaExceptionClassName withMessage:someMessage
@@ -10342,22 +10342,24 @@
 !
 
 syncMonitorCache
-    |mon wasBlocked enteredMonitors|
+    |mO mC mP mon wasBlocked enteredMonitors|
 
     wasBlocked := OperatingSystem blockInterrupts.
-    EnteredMonitorObject notNil ifTrue:[
-        mon := self monitorFor:EnteredMonitorObject.
-        mon fakeEnter:EnteredMonitorProcess count:EnteredMonitorObjectCount.
-        enteredMonitors := self enteredMonitorsOfProcess:EnteredMonitorProcess.
-        EnteredMonitorObjectCount timesRepeat:[
-            enteredMonitors addLast:EnteredMonitorObject
-        ].
-        EnteredMonitorObject := EnteredMonitorProcess := nil.
+    (mO := EnteredMonitorObject) notNil ifTrue:[
+        mC := EnteredMonitorObjectCount.
+        mP := EnteredMonitorProcess.
+        mon := self monitorFor:mO.
+        mon fakeEnter:mP count:mC.
+        enteredMonitors := self enteredMonitorsOfProcess:mP.
+        mC timesRepeat:[
+            enteredMonitors addLast:mO
+        ].
+        EnteredMonitorObject := EnteredMonitorProcess := LeftMonitorObject := nil.
     ].
     wasBlocked ifTrue:[ OperatingSystem unblockInterrupts].
 
     "Created: / 8.1.1999 / 13:59:17 / cg"
-    "Modified: / 8.1.1999 / 18:14:53 / cg"
+    "Modified: / 9.1.1999 / 00:39:55 / cg"
 !
 
 waitFor:sema state:pState timeOut:tmo
@@ -10455,8 +10457,14 @@
     "trampouline for unhandled cases ..."
 
     aClassOrInterface isBehavior ifTrue:[
+        anObject class == aClassOrInterface ifTrue:[
+            ^ true
+        ].
         aClassOrInterface == ByteArray ifTrue:[
-            ^ anObject class == aClassOrInterface
+            ^ false
+        ].
+        aClassOrInterface == SignedIntegerArray ifTrue:[
+            ^ false
         ].
 
         aClassOrInterface isInterface ifTrue:[
@@ -10501,8 +10509,8 @@
     self halt.
     ^ false.
 
-    "Modified: / 10.11.1998 / 01:51:01 / cg"
     "Created: / 8.1.1999 / 14:53:51 / cg"
+    "Modified: / 9.1.1999 / 00:45:21 / cg"
 !
 
 _D2I:op1
@@ -11473,6 +11481,6 @@
 !JavaVM class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.128 1999/01/08 19:25:24 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.129 1999/01/09 00:12:22 cg Exp $'
 ! !
 JavaVM initialize!