add JavaFieldRef>>reresolveForVersion: javaClass development
authorMarcel Hlopko <marcel.hlopko@gmail.com>
Sat, 12 Oct 2013 15:53:06 +0200
branchdevelopment
changeset 2819 76893aac6a7e
parent 2818 9e7d690fdc68
child 2820 1ab75f8aa9de
add JavaFieldRef>>reresolveForVersion: javaClass which is called by the VM when there are multiple class versions and we must ensure we use correct version for field resolving
JavaClassRef2.st
JavaFieldRef2.st
Make.proto
abbrev.stc
bmake.bat
lccmake.bat
libjava.rc
mingwmake.bat
stx_libjava.st
vcmake.bat
--- a/JavaClassRef2.st	Thu Oct 10 16:53:51 2013 +0200
+++ b/JavaClassRef2.st	Sat Oct 12 15:53:06 2013 +0200
@@ -95,6 +95,13 @@
     "Modified: / 31-08-2013 / 10:59:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+javaClass: javaClass
+
+    valueCache := javaClass.
+
+    "Created: / 12-10-2013 / 15:43:45 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
 javaClassName
     "return java class name as written in java programs e.g. java.util.String
      in case of array, return class name without square brackets. For primitive
--- a/JavaFieldRef2.st	Thu Oct 10 16:53:51 2013 +0200
+++ b/JavaFieldRef2.st	Sat Oct 12 15:53:06 2013 +0200
@@ -142,6 +142,18 @@
     "Created: / 16-10-2012 / 10:45:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+reresolveForVersion: javaClass
+    "
+    Reresolves fieldRef with class cache set to given javaClass. This is the 
+    way VM tells us which class version to use. This method is called only when
+    there are multiple class versions present.
+    "
+    self classRef javaClass: javaClass.
+    self findResolvedValue: true.
+
+    "Created: / 12-10-2013 / 15:44:04 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
 resolveOffset
     "fieldRef must be resolved before calling me"
     
--- a/Make.proto	Thu Oct 10 16:53:51 2013 +0200
+++ b/Make.proto	Sat Oct 12 15:53:06 2013 +0200
@@ -21,7 +21,7 @@
 INCLUDE_TOP=$(TOP)/..
 
 # subdirectories where targets are to be made:
-SUBDIRS= tools libs experiments
+SUBDIRS= experiments tools
 
 
 # subdirectories where Makefiles are to be made:
--- a/abbrev.stc	Thu Oct 10 16:53:51 2013 +0200
+++ b/abbrev.stc	Sat Oct 12 15:53:06 2013 +0200
@@ -75,6 +75,7 @@
 JavaSourceFileWriter JavaSourceFileWriter stx:libjava 'Languages-Java-Support' 0
 JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaTestsLoader JavaTestsLoader stx:libjava 'Languages-Java-Tests' 0
+JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaTopView JavaTopView stx:libjava 'Languages-Java-Views-Support' 2
 JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
 JavaUnresolvedCompilationError JavaUnresolvedCompilationError stx:libjava 'Languages-Java-Support' 1
@@ -120,7 +121,6 @@
 JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
 JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
 JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
 JavaUnresolvedClassConstant JavaUnresolvedClassConstant stx:libjava 'Languages-Java-Reader-Support' 0
 JavaUnresolvedStringConstant JavaUnresolvedStringConstant stx:libjava 'Languages-Java-Reader-Support' 0
--- a/bmake.bat	Thu Oct 10 16:53:51 2013 +0200
+++ b/bmake.bat	Sat Oct 12 15:53:06 2013 +0200
@@ -10,13 +10,6 @@
 make.exe -N -f bc.mak  %DEFINES% %*
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call bmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/tools
 @echo "***********************************"
 @cd tools
--- a/lccmake.bat	Thu Oct 10 16:53:51 2013 +0200
+++ b/lccmake.bat	Sat Oct 12 15:53:06 2013 +0200
@@ -6,13 +6,6 @@
 make.exe -N -f bc.mak -DUSELCC=1 %*
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call lccmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/tools
 @echo "***********************************"
 @cd tools
--- a/libjava.rc	Thu Oct 10 16:53:51 2013 +0200
+++ b/libjava.rc	Sat Oct 12 15:53:06 2013 +0200
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n          SWING Research Group, Czech Technical University In Prague\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Thu, 10 Oct 2013 14:52:36 GMT\0"
+      VALUE "ProductDate", "Sat, 12 Oct 2013 13:46:36 GMT\0"
     END
 
   END
--- a/mingwmake.bat	Thu Oct 10 16:53:51 2013 +0200
+++ b/mingwmake.bat	Sat Oct 12 15:53:06 2013 +0200
@@ -14,13 +14,6 @@
 make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call mingwmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/tools
 @echo "***********************************"
 @cd tools
--- a/stx_libjava.st	Thu Oct 10 16:53:51 2013 +0200
+++ b/stx_libjava.st	Sat Oct 12 15:53:06 2013 +0200
@@ -193,9 +193,8 @@
      for those, redefine requiredPrerequisites"
 
     ^ #(
+        #'stx:libjava/experiments'
         #'stx:libjava/tools'
-        #'stx:libjava/libs'
-        #'stx:libjava/experiments'
     )
 ! !
 
@@ -382,6 +381,7 @@
         JavaSourceFileWriter
         (JavaTestCaseProxy autoload)
         JavaTestsLoader
+        (JavaTestsResource autoload)
         JavaTopView
         (JavaUTF8Tests autoload)
         JavaUnresolvedCompilationError
@@ -427,7 +427,6 @@
         #'JavaNativeMethodImpl_OpenJDK6'
         JavaRelease
         JavaStringRef2
-        (JavaTestsResource autoload)
         JavaUnhandledExceptionError
         JavaUnresolvedClassConstant
         JavaUnresolvedStringConstant
--- a/vcmake.bat	Thu Oct 10 16:53:51 2013 +0200
+++ b/vcmake.bat	Sat Oct 12 15:53:06 2013 +0200
@@ -18,13 +18,6 @@
 
 
 @echo "***********************************"
-@echo "Buildung stx/libjava/libs
-@echo "***********************************"
-@cd libs
-@call vcmake %1 %2
-@cd ..
-
-@echo "***********************************"
 @echo "Buildung stx/libjava/tools
 @echo "***********************************"
 @cd tools