src/JavaVM.st
author hlopkmar
Fri, 09 Dec 2011 10:14:53 +0000
branchjk_new_structure
changeset 1248 a9583765fa58
parent 1247 59574ba88702
child 1249 3c82fe50483c
permissions -rw-r--r--
stupid monitor bug fixed, still not enough :/
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     1
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
     3
1155
vranyj1
parents: 1152
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
     5
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     8
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    14
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    15
1155
vranyj1
parents: 1152
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    18
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    19
     as of 1.9.2010
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    20
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava' }"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    22
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    23
Object subclass:#JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    25
	classVariableNames:'UnhandledJavaExceptionSignal JavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    26
		UnimplementedInstructionSignal UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    27
		BadMessageSignal InternalErrorSignal CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    28
		FullExceptionTrace StackTrace TraceHistory LockTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    29
		LockTableAccess LibPath SimulatedLibs LoadedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    30
		SimulatedNativeLibs LoadedNativeLibs WaitTable WaitTableAccess
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    31
		JavaWindowGroup KnownWindows DrawOPTrace WindowOPTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    32
		WindowCreationTrace EventTrace ThreadTrace MonitorTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    33
		ExceptionTrace InsnCount InsnCounts FileOpenTrace FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    34
		FileOpenConfirmation SocketConnectConfirmation FileIOTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    35
		OpenFileTable CachedNativeMethodTable ExceptionDebug ExitDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    36
		JavaConsoleStream StandardThreadGroup EnteredMonitorsPerProcess
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    37
		AcquiredMonitorsPerProcess JavaMethods DUMMY_LONG_HIGHWORD
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    38
		DUMMY_DOUBLE_HIGHWORD NoAudio FirstWindowCreationSemaphore
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    39
		PermittedDirectories PermittedHostConnects SimulatedOS
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    40
		O_WGgraphics_originX O_WGgraphics_originY O_WGgraphics_pData
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    41
		O_FramePeer_pNativeWidget O_FramePeer_pData ImageStretchCache
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    42
		LastGraphics LastGC EnteredMonitorObject
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    43
		EnteredMonitorObjectCount EnteredMonitorProcess LeftMonitorObject
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    44
		JavaEventThread JavaScreenUpdaterThread JavaEventQueueThread
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
    45
		SystemProperties ExceptionDebugPatterns NullPointerExceptionDebug
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    46
		DivisionByZeroExceptionDebug IOExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    47
		StdinReplacementFileQuerySignal AssertionsEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    48
		SimulatedNativeMemory Reflection ZipCache ZipEntryCache
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
    49
		ZipLastModTimesCache ZipInflaters JavaPrivilegedAccessQuery
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
    50
		ClassRegistry SystemClassLoader ExtClassLoader StartupTime
1185
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
    51
		FinalizationEnabled FinalizationLobby ParkUnparkSemaphores
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
    52
		threadInterrupts EagerResolvingEnabled'
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
    53
	poolDictionaries:'JavaConstants'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    54
	category:'Languages-Java-Support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    55
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    56
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    57
Object subclass:#Reflection
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    58
	instanceVariableNames:'vm constantPoolMapping javaClasses javaArrayClasses
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    59
		javaMethodsPerMethod returnNilIfMissing realMethods'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    60
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    61
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    62
	privateIn:JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    63
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    64
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    65
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    66
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    67
copyright
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    68
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    69
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    70
1155
vranyj1
parents: 1152
diff changeset
    71
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    72
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    73
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    74
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    75
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    76
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    77
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    78
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    79
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    80
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    81
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    82
1155
vranyj1
parents: 1152
diff changeset
    83
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    84
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    85
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    86
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    87
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    88
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    89
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    90
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    91
documentation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    92
"Runtime support and environment for Java. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    93
You shouldn't communicate with JavaVM directly, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    94
use Java class instead. JavaVM is layer between
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    95
the native interpret and the rest of the system.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    96
JavaVM implements native java virtual machine 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    97
methods called by interpret, hides java primitive 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    98
types handling, and gives the ST world ways to 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    99
control class loading and reflection"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   100
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   101
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   102
nativeMethods
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   103
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
    all native methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   106
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   107
            m isNative 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   108
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   109
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   110
    implemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   112
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   113
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   115
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   116
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   117
                JavaVM class implements:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   118
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   119
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   120
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   121
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   122
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   123
    unimplemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   125
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   126
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   127
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   128
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   129
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   130
                (JavaVM class implements:sel) not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   131
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   132
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   133
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   134
        ]    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   137
    list of all native methods as in jdk1.1.3:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   139
      X - implemented
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   140
      * - implemented to be validated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   141
      x - implemented with limited functionality
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   142
      o - implemented as dummy (no functionality)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   144
    X (Math::double sin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   145
    X (Math::double cos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   146
    X (Math::double tan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   147
    X (Math::double asin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   148
    X (Math::double acos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   149
    X (Math::double atan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   150
    X (Math::double exp (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   151
    X (Math::double log (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   152
    X (Math::double sqrt (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   153
      (Math::double IEEEremainder (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   154
    X (Math::double ceil (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   155
    X (Math::double floor (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   156
      (Math::double rint (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   157
      (Math::double atan2 (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   158
    X (Math::double pow (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   160
    X (Class::java.lang.Class forName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   161
    X (Class::java.lang.Object newInstance ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   162
    * (Class::boolean isInstance (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   163
    X (Class::boolean isAssignableFrom (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   164
    X (Class::boolean isInterface ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   165
      (Class::boolean isArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   166
    X (Class::boolean isPrimitive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   167
    X (Class::java.lang.String getName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   168
    X (Class::java.lang.ClassLoader getClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   169
    X (Class::java.lang.Class getSuperclass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   170
      (Class::java.lang.Class[] getInterfaces ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   171
      (Class::java.lang.Class getComponentType ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   172
      (Class::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   173
      (Class::java.lang.Object[] getSigners ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   174
      (Class::void setSigners (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   175
    X (Class::java.lang.Class getPrimitiveClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   176
      (Class::java.lang.reflect.Field getField0 (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   177
      (Class::java.lang.reflect.Field[] getFields0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   178
    X (Class::java.lang.reflect.Method getMethod0 (java.lang.String java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   179
    X (Class::java.lang.reflect.Method[] getMethods0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   180
      (Class::java.lang.reflect.Constructor[] getConstructors0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   181
      (Class::java.lang.reflect.Constructor getConstructor0 (java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   183
    X (InetAddressImpl::java.lang.String getLocalHostName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   184
    X (InetAddressImpl::void makeAnyLocalAddress (java.net.InetAddress))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   185
    X (InetAddressImpl::byte[][] lookupAllHostAddr (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   186
      (InetAddressImpl::java.lang.String getHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   187
    X (InetAddressImpl::int getInetFamily ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   189
    X (ResourceBundle::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   191
    X (System::void setIn0 (java.io.InputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   192
    X (System::void setOut0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   193
    X (System::void setErr0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   194
    X (System::long currentTimeMillis ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   195
    X (System::void arraycopy (java.lang.Object int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   196
    X (System::int identityHashCode (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   197
    X (System::java.util.Properties initProperties (java.util.Properties))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   199
    X (Thread::java.lang.Thread currentThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
    X (Thread::void yield ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   201
    X (Thread::void sleep (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   202
    X (Thread::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   203
    X (Thread::boolean isInterrupted (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   204
    X (Thread::boolean isAlive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   205
      (Thread::int countStackFrames ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   206
    X (Thread::void setPriority0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   207
    X (Thread::void stop0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   208
    X (Thread::void suspend0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   209
    X (Thread::void resume0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   210
    * (Thread::void interrupt0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   212
      (String::java.lang.String intern ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   213
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   214
    X (Float::int floatToIntBits (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   215
    X (Float::float intBitsToFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   217
      (ObjectStreamClass::int getClassAccess (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   218
      (ObjectStreamClass::java.lang.String[] getMethodSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
      (ObjectStreamClass::int getMethodAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
      (ObjectStreamClass::java.lang.String[] getFieldSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   221
      (ObjectStreamClass::int getFieldAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
      (ObjectStreamClass::java.io.ObjectStreamField[] getFields0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
      (ObjectStreamClass::long getSerialVersionUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
      (ObjectStreamClass::boolean hasWriteObject (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
      (ObjectInputStream::java.lang.Class loadClass0 (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
      (ObjectInputStream::void inputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
      (ObjectInputStream::java.lang.Object allocateNewObject (java.lang.Class java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
      (ObjectInputStream::java.lang.Object allocateNewArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
      (ObjectInputStream::boolean invokeObjectReader (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
      (SecurityManager::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
    X (SecurityManager::java.lang.ClassLoader currentClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
      (SecurityManager::int classDepth (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
    X (SecurityManager::int classLoaderDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
      (SecurityManager::java.lang.Class currentLoadedClass0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
    X (ClassLoader::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   238
    X (ClassLoader::java.lang.Class defineClass0 (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   239
    X (ClassLoader::void resolveClass0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   240
    X (ClassLoader::java.lang.Class findSystemClass0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   241
    X (ClassLoader::java.io.InputStream getSystemResourceAsStream0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
      (ClassLoader::java.lang.String getSystemResourceAsName0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
    X (FileDescriptor::boolean valid ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
      (FileDescriptor::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
    X (FileDescriptor::java.io.FileDescriptor initSystemFD (java.io.FileDescriptor int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
    X (Object::java.lang.Class getClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
    X (Object::int hashCode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
    X (Object::java.lang.Object clone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
    X (Object::void notify ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
    X (Object::void notifyAll ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
    X (Object::void wait (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
    X (FileOutputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
    X (FileOutputStream::void openAppend (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
    X (FileOutputStream::void write (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
    X (FileOutputStream::void writeBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
    X (FileOutputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
    X (FileInputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
    X (FileInputStream::int read ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
    X (FileInputStream::int readBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
      (FileInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
    X (FileInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
    X (FileInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
      (VM::int getState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
      (VM::boolean threadsSuspended ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
      (VM::void unsuspendThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
      (VM::void unsuspendSomeThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
    X (File::boolean exists0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
    X (File::boolean canWrite0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
    X (File::boolean canRead0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
    X (File::boolean isFile0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
    X (File::boolean isDirectory0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
    X (File::long lastModified0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
    X (File::long length0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
    X (File::boolean mkdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
    X (File::boolean renameTo0 (java.io.File))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
    X (File::boolean delete0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
      (File::boolean rmdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
    X (File::java.lang.String[] list0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
      (File::java.lang.String canonPath (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
    X (File::boolean isAbsolute ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
      (ObjectOutputStream::void outputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
      (ObjectOutputStream::boolean invokeObjectWriter (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
    X (Throwable::void printStackTrace0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
    X (Throwable::java.lang.Throwable fillInStackTrace ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
    X (Double::long doubleToLongBits (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
    X (Double::double longBitsToDouble (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
    X (Double::double valueOf0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   297
    X (Runtime::void exitInternal (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   298
    o (Runtime::void runFinalizersOnExit0 (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   299
    o (Runtime::java.lang.Process execInternal (java.lang.String[] java.lang.String[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   300
    X (Runtime::long freeMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   301
    X (Runtime::long totalMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   302
    X (Runtime::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   303
      (Runtime::void runFinalization ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   304
      (Runtime::void traceInstructions (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   305
      (Runtime::void traceMethodCalls (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   306
    X (Runtime::java.lang.String initializeLinkerInternal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   307
    X (Runtime::java.lang.String buildLibName (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   308
    X (Runtime::int loadFileInternal (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   309
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   310
      (WDrawingSurfaceInfo::int lock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   311
      (WDrawingSurfaceInfo::void unlock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   312
      (WDrawingSurfaceInfo::int getHWnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   313
      (WDrawingSurfaceInfo::int getHBitmap ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   314
      (WDrawingSurfaceInfo::int getPBits ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   315
      (WDrawingSurfaceInfo::int getHDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   316
      (WDrawingSurfaceInfo::int getDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   317
      (WDrawingSurfaceInfo::int getHPalette ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   319
    X (WDefaultFontCharset::boolean canConvert (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   321
      (ColorModel::void deletepData ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   322
    X (WToolkit::void init (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   323
    X (WToolkit::void eventLoop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   324
      (WToolkit::java.awt.image.ColorModel makeColorModel ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   325
    X (WToolkit::int getScreenResolution ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   326
    X (WToolkit::int getScreenWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   327
    X (WToolkit::int getScreenHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   328
      (WToolkit::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   329
    * (WToolkit::void beep ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   330
    X (WToolkit::void loadSystemColors (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   332
      (WPrintJob::void end ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   334
    X (WDialogPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   335
    X (WDialogPeer::void _show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   336
    X (WDialogPeer::void _hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   338
    X (WWindowPeer::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   339
    X (WWindowPeer::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   340
    X (WWindowPeer::void _setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   341
    X (WWindowPeer::void _setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   342
    X (WWindowPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   343
    o (WWindowPeer::void updateInsets (java.awt.Insets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   344
      (WWindowPeer::java.awt.Component getContainerElement (java.awt.Container int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   346
    X (WCanvasPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   348
    X (WTextAreaPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   349
    X (WTextAreaPeer::void insertText (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   350
      (WTextAreaPeer::void replaceText (java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   352
    X (WTextComponentPeer::java.lang.String getText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   353
    X (WTextComponentPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   354
    X (WTextComponentPeer::int getSelectionStart ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   355
    X (WTextComponentPeer::int getSelectionEnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   356
    X (WTextComponentPeer::void select (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   357
    X (WTextComponentPeer::void enableEditing (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   359
    X (WComponentPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   360
    X (WComponentPeer::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   361
    X (WComponentPeer::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   362
    X (WComponentPeer::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   363
    X (WComponentPeer::java.awt.Point getLocationOnScreen ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   364
    X (WComponentPeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   365
    o (WComponentPeer::void handleEvent (java.awt.AWTEvent))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   366
    o (WComponentPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   367
    X (WComponentPeer::void _setForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   368
    X (WComponentPeer::void _setBackground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   369
    o (WComponentPeer::void setFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   370
    o (WComponentPeer::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   371
    o (WComponentPeer::void setCursor (java.awt.Cursor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   372
    o (WComponentPeer::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   373
      (WComponentPeer::void _beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   374
      (WComponentPeer::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   375
    o (WComponentPeer::void setZOrderPosition (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   377
    X (WFramePeer::void setMenuBar0 (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   378
    X (WFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   379
    X (WFramePeer::void _setIconImage (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   381
    o (WFontMetrics::boolean needsConversion (java.awt.Font sun.awt.FontDescriptor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   382
    o (WFontMetrics::int getMFCharSegmentWidth (java.awt.Font sun.awt.FontDescriptor boolean char[] int int byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   383
      (WFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   384
      (WFontMetrics::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   386
    o (WChoicePeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   387
    o (WChoicePeer::void remove (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   388
    o (WChoicePeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   389
    X (WChoicePeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   390
    X (WChoicePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   392
    X (WLabelPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   393
    o (WLabelPeer::void setAlignment (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   394
    X (WLabelPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   396
    X (WMenuItemPeer::void _setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   397
    X (WMenuItemPeer::void create (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   398
    X (WMenuItemPeer::void enable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   399
    o (WMenuItemPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   400
      (WMenuPeer::void addSeparator ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   401
      (WMenuPeer::void delItem (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   402
    X (WMenuPeer::void createMenu (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   403
      (WMenuPeer::void createSubMenu (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   405
      (WPopupMenuPeer::void createMenu (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   406
      (WPopupMenuPeer::void _show (java.awt.Event))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   407
      (WMenuBarPeer::void addMenu (java.awt.Menu))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   408
      (WMenuBarPeer::void delMenu (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   409
    X (WMenuBarPeer::void create (sun.awt.windows.WFramePeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   411
      (WCheckboxMenuItemPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   413
    X (WFileDialogPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   415
    X (WCheckboxPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   416
    X (WCheckboxPeer::void setCheckboxGroup (java.awt.CheckboxGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   417
      (WCheckboxPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   418
    X (WCheckboxPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   420
    X (WClipboard::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   421
      (WClipboard::void setClipboardText (java.awt.datatransfer.StringSelection))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   422
      (WClipboard::java.lang.String getClipboardText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   424
    X (WListPeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   425
    X (WListPeer::void delItems (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   426
    X (WListPeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   427
      (WListPeer::void deselect (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   428
      (WListPeer::void makeVisible (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   429
    X (WListPeer::void setMultipleSelections (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   430
    X (WListPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   431
    X (WListPeer::boolean isSelected (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   433
    x (WScrollbarPeer::void _setValues (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   434
    x (WScrollbarPeer::void setLineIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   435
    x (WScrollbarPeer::void setPageIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   436
    x (WScrollbarPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   438
    x (ImageRepresentation::void offscreenInit (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   439
    x (ImageRepresentation::boolean setBytePixels (int int int int java.awt.image.ColorModel byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   440
    x (ImageRepresentation::boolean setIntPixels (int int int int java.awt.image.ColorModel int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   441
    x (ImageRepresentation::boolean finish (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   442
    X (ImageRepresentation::void imageDraw (java.awt.Graphics int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   443
    x (ImageRepresentation::void imageStretch (java.awt.Graphics int int int int int int int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   444
    x (ImageRepresentation::void disposeImage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   446
    X (WTextFieldPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   447
    X (WTextFieldPeer::void setEchoCharacter (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   448
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   449
    X (WScrollPanePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   450
    o (WScrollPanePeer::int getOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   451
      (WScrollPanePeer::void setInsets ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   452
      (WScrollPanePeer::void setScrollPosition (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   453
    x (WScrollPanePeer::int _getHScrollbarHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   454
    x (WScrollPanePeer::int _getVScrollbarWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   455
    o (WScrollPanePeer::void setSpans (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   456
      (WScrollPanePeer::java.awt.Component getScrollChild ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   457
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   458
      (WEmbeddedFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   459
    X (WButtonPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   460
    X (WButtonPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   462
    x (WColor::java.awt.Color getDefaultColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   464
    x (GifImageDecoder::boolean parseImage (int int int int boolean int byte[] byte[] java.awt.image.IndexColorModel))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   466
    x (WGraphics::void createFromComponent (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   467
    x (WGraphics::void createFromGraphics (sun.awt.windows.WGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   468
      (WGraphics::void createFromPrintJob (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   469
      (WGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   470
    x (WGraphics::void imageCreate (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   471
    x (WGraphics::void pSetFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   472
    X (WGraphics::void pSetForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   473
      (WGraphics::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   474
    x (WGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   475
    x (WGraphics::void setPaintMode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   476
    x (WGraphics::void setXORMode (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   477
    o (WGraphics::java.awt.Rectangle getClipBounds ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   478
    o (WGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   479
      (WGraphics::void removeClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   480
    X (WGraphics::void clearRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   481
    X (WGraphics::void fillRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   482
    X (WGraphics::void drawRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   483
      (WGraphics::void drawSFChars (char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   484
    x (WGraphics::int drawMFCharsSegment (java.awt.Font sun.awt.FontDescriptor char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   485
      (WGraphics::int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   486
      (WGraphics::void drawBytes (byte[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   487
    X (WGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   488
    X (WGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   489
    o (WGraphics::void drawRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   490
    o (WGraphics::void fillRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   491
    X (WGraphics::void drawPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   492
      (WGraphics::void drawPolyline (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   493
    X (WGraphics::void fillPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   494
    x (WGraphics::void drawOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   495
    x (WGraphics::void fillOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   496
    x (WGraphics::void drawArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   497
    x (WGraphics::void fillArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   498
      (WGraphics::void print (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   499
      (WGraphics::void close (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   500
      (JPEGImageDecoder::void readImage (java.io.InputStream byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   501
    o (OffScreenImageSource::void sendPixels ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   504
    additional native methods added by microsoft (sigh):
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   506
    X (java.lang.String::boolean equals (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   507
    X (java.lang.String::int length (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   508
    o (java.lang.Runtime::void setInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   509
    o (java.lang.Runtime::void setOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   511
      (java.lang.String::int compareTo (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   512
      (java.lang.String::boolean equalsIgnoreCase (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   513
      (java.lang.String::int indexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   514
      (java.lang.String::boolean startsWith (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   515
      (java.lang.String::boolean regionMatches (int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   516
      (java.lang.String::boolean regionMatches (boolean int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   517
      (java.lang.String::int lastIndexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   518
      (java.lang.ClassLoader::void resolveClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   520
      (java.lang.ClassLoader::java.lang.Class createArrayClass (java.lang.String java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   521
      (java.io.PrintStream::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   522
      (java.lang.Runtime::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   523
      (java.lang.Runtime::boolean isInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   524
      (java.lang.ThreadGroup::void initMainThreadGroup0 (java.lang.ThreadGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   525
      (java.lang.System::void validateSecurityManager (java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   526
      (java.lang.Class::java.lang.reflect.Method getMethod2 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   527
      (java.io.ObjectOutputStream::void invokeDefaultWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   528
      (java.io.ObjectOutputStream::void invokeWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   529
      (java.io.ObjectInputStream::void invokeDefaultReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   530
      (java.io.ObjectInputStream::void invokeReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   531
      (java.util.TimeZone::java.util.TimeZone getWin32TimeZone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   532
      (java.net.InetAddress::java.lang.Object[] lookupHostByName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   533
      (java.net.InetAddress::java.lang.Object[] lookupHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   534
      (java.io.ObjectStreamClass::void doMismatchedRead (java.io.ObjectInputStream java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   535
      (java.io.ObjectStreamClass::long getClassDefinedUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   536
      (java.io.ObjectStreamClass::boolean findObjectMethod0 (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   537
      (java.lang.reflect.Method::java.lang.String getDescriptor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   538
      (java.lang.reflect.Array::void setShort (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   539
      (java.lang.reflect.Array::char getChar (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   540
      (java.lang.reflect.Array::void setChar (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   541
      (java.lang.reflect.Array::void setDouble (java.lang.Object int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   542
      (java.lang.reflect.Array::java.lang.Object get (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   543
      (java.lang.reflect.Array::void set (java.lang.Object int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   544
      (java.lang.reflect.Array::int getInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   545
      (java.lang.reflect.Array::void setInt (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   546
      (java.lang.reflect.Array::java.lang.Object multiNewArray (java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   547
      (java.lang.reflect.Array::boolean getBoolean (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   548
      (java.lang.reflect.Array::byte getByte (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   549
      (java.lang.reflect.Array::float getFloat (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   550
      (java.lang.reflect.Array::void setBoolean (java.lang.Object int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   551
      (java.lang.reflect.Array::long getLong (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   552
      (java.lang.reflect.Array::void setByte (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   553
      (java.lang.reflect.Array::void setLong (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   554
      (java.lang.reflect.Array::void setFloat (java.lang.Object int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   555
      (java.lang.reflect.Array::java.lang.Object newArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   556
      (java.lang.reflect.Array::int getLength (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   557
      (java.lang.reflect.Array::unsigned short getShort (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   558
      (java.lang.reflect.Array::double getDouble (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   559
      (java.lang.reflect.Field::void setShort (java.lang.Object unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   560
      (java.lang.reflect.Field::char getChar (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   561
      (java.lang.reflect.Field::void setChar (java.lang.Object char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   562
      (java.lang.reflect.Field::void setDouble (java.lang.Object double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   563
      (java.lang.reflect.Field::java.lang.Object get (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   564
      (java.lang.reflect.Field::void set (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   565
      (java.lang.reflect.Field::int getInt (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   566
      (java.lang.reflect.Field::void setInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   567
      (java.lang.reflect.Field::boolean getBoolean (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   568
      (java.lang.reflect.Field::byte getByte (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   569
      (java.lang.reflect.Field::float getFloat (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   570
      (java.lang.reflect.Field::long getLong (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   571
      (java.lang.reflect.Field::void setBoolean (java.lang.Object boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   572
      (java.lang.reflect.Field::void setByte (java.lang.Object byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   573
      (java.lang.reflect.Field::void setLong (java.lang.Object long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   574
      (java.lang.reflect.Field::void setFloat (java.lang.Object float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   575
      (java.lang.reflect.Field::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   576
      (java.lang.reflect.Field::unsigned short getShort (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   577
      (java.lang.reflect.Field::double getDouble (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   578
      (java.lang.reflect.Constructor::java.lang.Object newInstance (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   579
      (java.lang.reflect.Constructor::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   580
      (java.util.zip.Inflater::void setDictionary0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   581
      (java.util.zip.Inflater::int getTotalIn0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   582
      (java.util.zip.Inflater::void reset0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   583
      (java.util.zip.Inflater::void end0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   584
      (java.util.zip.Inflater::int inflate0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   585
      (java.util.zip.Inflater::int getTotalOut0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   586
      (java.util.zip.Inflater::int getAdler0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   587
      (java.util.zip.CRC32::void update1 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   588
      (java.util.zip.CRC32::void update (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   589
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   590
      (com.ms.security.PolicyEngine::boolean isSystemClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   591
      (com.ms.security.PolicyEngine::void denyPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   592
      (com.ms.security.PolicyEngine::void revertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   593
      (com.ms.security.PolicyEngine::void initPolicyEngine ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   594
      (com.ms.security.PolicyEngine::java.lang.Class _getClassOfCaller (java.lang.Class[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   595
      (com.ms.security.PolicyEngine::void internalCheckClass (java.lang.Class com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   596
      (com.ms.security.PolicyEngine::com.ms.security.PermissionDataSet getPermissionsOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   597
      (com.ms.security.PolicyEngine::void assertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   598
      (com.ms.security.PolicyEngine::void deepCheck (com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   599
      (com.ms.security.PolicyEngine::void shallowCheck (com.ms.security.PermissionID java.lang.Object java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   600
      (com.ms.security.PolicyEngine::java.security.Principal getPrincipalOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   601
      (com.ms.security.permissions.ThreadPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   602
      (com.ms.security.permissions.ThreadPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   603
      (com.ms.security.permissions.RegistryPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   604
      (com.ms.security.permissions.RegistryPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   605
      (com.ms.security.management.ZonePermissions::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   606
      (com.ms.security.management.ZonePermissions::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   607
      (com.ms.security.permissions.UIPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   608
      (com.ms.security.permissions.UIPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   609
      (com.ms.security.permissions.NetIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   610
      (com.ms.security.permissions.NetIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   611
      (com.ms.security.permissions.ReflectionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   612
      (com.ms.security.permissions.ReflectionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   613
      (com.ms.vm.WeakReference::void storeRef (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   614
      (com.ms.vm.WeakReference::int allocRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   615
      (com.ms.vm.WeakReference::void freeRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   616
      (com.ms.vm.WeakReference::java.lang.Object fetchRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   617
      (com.ms.dll.DllLib::void CoTaskMemFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   618
      (com.ms.dll.DllLib::void CopyWithDstOffset (int float[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   619
      (com.ms.dll.DllLib::void CopyWithDstOffset (int double[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   620
      (com.ms.dll.DllLib::int numParamBytes0 (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   621
      (com.ms.dll.DllLib::void CopyWithDstOffset (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   622
      (com.ms.dll.DllLib::void write2 (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   623
      (com.ms.dll.DllLib::void write2 (int int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   624
      (com.ms.dll.DllLib::void write2 (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   625
      (com.ms.dll.DllLib::void write2 (int int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   626
      (com.ms.dll.DllLib::int GlobalAlloc (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   627
      (com.ms.dll.DllLib::void resize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   628
      (com.ms.dll.DllLib::long read8 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   629
      (com.ms.dll.DllLib::long read8 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   630
      (com.ms.dll.DllLib::int lstrcpy (java.lang.StringBuffer int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   631
      (com.ms.dll.DllLib::int lstrlenA (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   632
      (com.ms.dll.DllLib::int read4 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   633
      (com.ms.dll.DllLib::int CoTaskMemAlloc (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   634
      (com.ms.dll.DllLib::void write8 (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   635
      (com.ms.dll.DllLib::int sizeOf0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   636
      (com.ms.dll.DllLib::int getSystemDefaultCharSize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   637
      (com.ms.dll.DllLib::void write8 (int int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   638
      (com.ms.dll.DllLib::int read4 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   639
      (com.ms.dll.DllLib::byte read1 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   640
      (com.ms.dll.DllLib::byte read1 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   641
      (com.ms.dll.DllLib::int lstrlen (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   642
      (com.ms.dll.DllLib::void CopyMemoryAnsi (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   643
      (com.ms.dll.DllLib::void CopyMemoryAnsi (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   644
      (com.ms.dll.DllLib::boolean isStruct (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   645
      (com.ms.dll.DllLib::boolean GlobalFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   646
      (com.ms.dll.DllLib::void internalAttemptCopyPtrToStruct (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   647
      (com.ms.dll.DllLib::int getLastError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   648
      (com.ms.dll.DllLib::void write4 (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   649
      (com.ms.dll.DllLib::void write4 (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   650
      (com.ms.dll.DllLib::unsigned short read2 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   651
      (com.ms.dll.DllLib::unsigned short read2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   652
      (com.ms.dll.DllLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   653
      (com.ms.dll.DllLib::void write1 (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   654
      (com.ms.dll.DllLib::void write1 (int int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   655
      (com.ms.dll.DllLib::boolean isStructCls (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   656
      (com.ms.dll.DllLib::void prelink (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   657
      (com.ms.dll.DllLib::void CopyMemoryUni (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   658
      (com.ms.dll.DllLib::void CopyMemoryUni (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   659
      (com.ms.dll.DllLib::void internalAttemptCopyStructToPtr (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   660
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   661
      (com.ms.dll.DllLib::void CopyWithSrcOffset (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   662
      (com.ms.dll.DllLib::void CopyWithSrcOffset (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   663
      (com.ms.dll.DllLib::void CopyWithSrcOffset (unsigned short[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   664
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   665
      (com.ms.dll.DllLib::void CopyWithSrcOffset (long[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   666
      (com.ms.dll.DllLib::void CopyWithSrcOffset (float[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   667
      (com.ms.dll.DllLib::void CopyWithSrcOffset (double[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   668
      (com.ms.dll.DllLib::void CopyWithSrcOffset (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   669
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   670
      (com.ms.dll.DllLib::int lstrlenW (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   671
      (com.ms.dll.DllLib::void CopyWithDstOffset (int byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   672
      (com.ms.dll.DllLib::void CopyWithDstOffset (int char[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   673
      (com.ms.dll.DllLib::void CopyWithDstOffset (int unsigned short[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   674
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   675
      (com.ms.dll.DllLib::void CopyWithDstOffset (int long[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   676
      (com.ms.dll.DllLib::int internalGetStructAddr (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   677
      (com.ms.dll.DllLib::int offsetOf (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   678
      (com.ms.dll.DllLib::int lstrcpy (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   679
      (com.ms.dll.DllLib::int sizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   680
      (com.ms.lang.RegKey::com.ms.lang.RegKeyEnumValue pRegEnumValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   681
      (com.ms.lang.RegKey::java.lang.String pRegQueryStringValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   682
      (com.ms.lang.RegKey::byte[] pRegQueryBinaryValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   683
      (com.ms.lang.RegKey::int pRegQueryIntValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   684
      (com.ms.lang.RegKey::void pRegSetStringValue (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   685
      (com.ms.lang.RegKey::void pRegSetIntValue (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   686
      (com.ms.lang.RegKey::void pRegSetBinaryValue (java.lang.String byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   687
      (com.ms.lang.RegKey::void pRegDeleteValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   688
      (com.ms.lang.RegKey::void pRegFlushKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   689
      (com.ms.lang.RegKey::void pRegDeleteKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   690
      (com.ms.lang.RegKey::void pRegOpenBaseKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   691
      (com.ms.lang.RegKey::void pRegOpenKey (com.ms.lang.RegKey java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   692
      (com.ms.lang.RegKey::int pRegQueryInfoKey (com.ms.lang.RegQueryInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   693
      (com.ms.lang.RegKey::void pRegUnLoadKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   694
      (com.ms.lang.RegKey::void pRegCreateKey (com.ms.lang.RegKey java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   695
      (com.ms.lang.RegKey::void pRegRestoreKey (java.lang.String boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   696
      (com.ms.lang.RegKey::void pRegLoadKey (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   697
      (com.ms.lang.RegKey::void pRegCloseKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   698
      (com.ms.lang.RegKey::java.lang.String pRegEnumKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   699
      (com.ms.lang.RegKey::void pRegReplaceKey (java.lang.String java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   700
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayouts (int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   701
      (com.ms.awt.peer.NativeServices::void jpegReadByte (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   702
      (com.ms.awt.peer.NativeServices::int getColourDataDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   703
      (com.ms.awt.peer.NativeServices::java.lang.String pGetFontEnumeratedFamily (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   704
      (com.ms.awt.peer.NativeServices::int pNewFontEnumeration ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   705
      (com.ms.awt.peer.NativeServices::int getScreenClipRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   706
      (com.ms.awt.peer.NativeServices::int pSetKeyboardLayout (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   707
      (com.ms.awt.peer.NativeServices::void ClipboardInit (com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   708
      (com.ms.awt.peer.NativeServices::void getDeviceCaps (int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   709
      (com.ms.awt.peer.NativeServices::void getAfcMetrics (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   710
      (com.ms.awt.peer.NativeServices::void setUserLocale (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   711
      (com.ms.awt.peer.NativeServices::void getDCDI (com.ms.awt.peer.DirectColourDataInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   712
      (com.ms.awt.peer.NativeServices::int pGetNumKeyboardLayouts ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   713
      (com.ms.awt.peer.NativeServices::void getIndexedColours (byte[] byte[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   714
      (com.ms.awt.peer.NativeServices::int getNativeFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   715
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayout ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   716
      (com.ms.awt.peer.NativeServices::int getSystemLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   717
      (com.ms.awt.peer.NativeServices::void caretSetPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   718
      (com.ms.awt.peer.NativeServices::java.lang.String getLogFontFromIUnknown (com.ms.com.IUnknown com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   719
      (com.ms.awt.peer.NativeServices::java.lang.String ClipboardGetText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   720
      (com.ms.awt.peer.NativeServices::int systemMetric (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   721
      (com.ms.awt.peer.NativeServices::void jpegInit (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   722
      (com.ms.awt.peer.NativeServices::void caretHide (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   723
      (com.ms.awt.peer.NativeServices::int chooseColor (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   724
      (com.ms.awt.peer.NativeServices::java.lang.String pGetKeyboardLayoutName (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   725
      (com.ms.awt.peer.NativeServices::int matchFontAndLanguage (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   726
      (com.ms.awt.peer.NativeServices::java.lang.String chooseFont (com.ms.awt.peer.LogFontX java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   727
      (com.ms.awt.peer.NativeServices::java.lang.String getSystemFont (int com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   728
      (com.ms.awt.peer.NativeServices::com.ms.com.IUnknown getIUnknownFromLogFont (java.lang.String com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   729
      (com.ms.awt.peer.NativeServices::void caretDispose (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   730
      (com.ms.awt.peer.NativeServices::void caretShow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   731
      (com.ms.awt.peer.NativeServices::void deleteObject (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   732
      (com.ms.awt.peer.NativeServices::void setDebugOutput (com.ms.awt.peer.COMPrintCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   733
      (com.ms.awt.peer.NativeServices::void jpegReadInt (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   734
      (com.ms.awt.peer.NativeServices::int getSystemColourValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   735
      (com.ms.awt.peer.NativeServices::void caretCreate (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   736
      (com.ms.awt.peer.NativeServices::void ClipboardSetText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   737
      (com.ms.awt.peer.NativeServices::void println (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   738
      (com.ms.security.SecurityClassLoader::boolean getSecureState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   739
      (com.ms.security.SecurityClassLoader::void setSecureState (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   740
      (com.ms.security.SecurityClassLoader::java.lang.Class internalDefineClass (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   741
      (com.ms.security.SecurityClassLoader::void markClass (java.lang.Class com.ms.security.PermissionSet java.security.Principal))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   742
      (com.ms.security.SecurityClassLoader::java.util.Hashtable getHashTable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   743
      (com.ms.security.auditing.SecurityAuditor::boolean isThreadAuditingEnabled ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   744
      (com.ms.security.auditing.SecurityAuditor::void disableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   745
      (com.ms.security.auditing.SecurityAuditor::void enableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   746
      (com.ms.security.auditing.SecurityAuditor::void initSecurityAuditor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   747
      (com.ms.security.PermissionDataSet::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   748
      (com.ms.security.PermissionDataSet::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   749
      (com.ms.lang.SystemX::int pAnsiToUnicode (byte[] char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   750
      (com.ms.lang.SystemX::int pQueryUnicodeToAnsi (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   751
      (com.ms.lang.SystemX::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   752
      (com.ms.lang.SystemX::boolean arrayCompare (java.lang.Object[] int java.lang.Object[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   753
      (com.ms.lang.SystemX::int pUnicodeToAnsi (char[] byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   754
      (com.ms.lang.SystemX::boolean isLocalCharDBCSLeadByte (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   755
      (com.ms.lang.SystemX::int pQueryAnsiToUnicode (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   756
      (com.ms.lang.SystemX::boolean isBaseDBCS ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   757
      (com.ms.lang.SystemX::java.lang.reflect.Method getMethod2 (java.lang.Class int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   758
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetSigner (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   759
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetCapabilities (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   760
      (com.ms.com._Guid::void IIDFromString (java.lang.String com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   761
      (com.ms.com._Guid::java.lang.String StringFromIID (com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   762
      (com.ms.security.auditing.PrintStreamAuditor::int GetModuleHandle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   763
      (com.ms.security.auditing.PrintStreamAuditor::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   764
      (com.ms.security.permissions.CustomPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   765
      (com.ms.security.permissions.CustomPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   766
      (com.ms.security.permissions.X509Signer::boolean pLoad (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   767
      (com.ms.packagemanager.PackageManager::java.lang.Class nativeFindClassInNamespace (java.lang.String java.lang.String java.lang.ClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   768
      (com.ms.packagemanager.PackageManager::java.lang.Object nativeGetPackage (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   769
      (com.ms.packagemanager.PackageManager::java.lang.String[] nativeGetBeansList ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   770
      (com.ms.packagemanager.PackageManager::com.ms.com.IStream nativeGetFileIStream (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   771
      (com.ms.packagemanager.PackageManager::java.lang.Class nativeFindClass (java.lang.String java.lang.String java.lang.ClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   772
      (com.ms.security.permissions.UserFileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   773
      (com.ms.security.permissions.UserFileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   774
      (com.ms.security.permissions.PropertyPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   775
      (com.ms.security.permissions.PropertyPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   776
      (com.ms.security.permissions.ClientStoragePermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   777
      (com.ms.security.permissions.ClientStoragePermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   778
      (com.ms.security.permissions.ExecutionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   779
      (com.ms.security.permissions.ExecutionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   780
      (com.ms.util.EventLog::boolean DeregisterEventSource (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   781
      (com.ms.util.EventLog::void reportEvent0 (unsigned short unsigned short int java.lang.String[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   782
      (com.ms.util.EventLog::int RegisterEventSource (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   783
      (com.ms.applet.BrowserAppletFrame::void signalViewChange (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   784
      (com.ms.applet.BrowserAppletFrame::java.lang.Object newInstance (int java.lang.Class boolean com.ms.security.PermissionSet))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   785
      (com.ms.applet.BrowserAppletFrame::void showSystemStatus (int int boolean java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   786
      (com.ms.applet.BrowserAppletFrame::com.ms.security.management.SecurityPolicy getSecurityPolicy0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   787
      (com.ms.applet.BrowserAppletFrame::void setDownloadState (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   788
      (com.ms.applet.BrowserAppletFrame::int GetSystemDefaultLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   789
      (com.ms.applet.BrowserAppletFrame::void requestResize (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   790
      (com.ms.applet.BrowserAppletFrame::void signalObjectLoadDone (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   791
      (com.ms.applet.BrowserAppletFrame::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   792
      (com.ms.applet.BrowserAppletFrame::void showStatus0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   793
      (com.ms.applet.BrowserAppletFrame::boolean checkGlobalOfflineMode0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   794
      (com.ms.applet.BrowserAppletFrame::void showDocument0 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   795
      (com.ms.security.permissions.SystemStreamsPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   796
      (com.ms.security.permissions.SystemStreamsPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   797
      (com.ms.security.permissions.FileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   798
      (com.ms.security.permissions.FileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   799
      (com.ms.com.ComLib::int newGCHandle (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   800
      (com.ms.com.ComLib::java.lang.Object derefGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   801
      (com.ms.com.ComLib::void dprinthelper (char[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   802
      (com.ms.com.ComLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   803
      (com.ms.com.ComLib::int jcdwClassSizeOf (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   804
      (com.ms.com.ComLib::int jcdwOffsetOf (java.lang.Object java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   805
      (com.ms.com.ComLib::int jcdwClassOffsetOf (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   806
      (com.ms.com.ComLib::boolean isJavaOwned (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   807
      (com.ms.com.ComLib::void brk (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   808
      (com.ms.com.ComLib::void setDataWrapperSize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   809
      (com.ms.com.ComLib::void brk (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   810
      (com.ms.com.ComLib::void setJCDWHomeThread (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   811
      (com.ms.com.ComLib::void propagateOwnership (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   812
      (com.ms.com.ComLib::void threadStartMTA (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   813
      (com.ms.com.ComLib::void IENVNextMarshalerJ2C (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   814
      (com.ms.com.ComLib::boolean supportsInterface (java.lang.Object com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   815
      (com.ms.com.ComLib::java.lang.Object ptrToStruct (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   816
      (com.ms.com.ComLib::int jcdwSizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   817
      (com.ms.com.ComLib::void declareMessagePumpThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   818
      (com.ms.com.ComLib::void IENVNextMarshalerC2J (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   819
      (com.ms.com.ComLib::void freeGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   820
      (com.ms.com.ComLib::boolean isEqualUnknown (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   821
      (com.ms.com.Dispatch::boolean NIsArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   822
      (com.ms.com.Dispatch::java.lang.String NInvokeReal (java.lang.Object com.ms.com._Guid java.lang.String int int int int com.ms.com.Variant[] com.ms.com.Variant[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   823
      (com.ms.com.Dispatch::void NGetIDsOfNamesReal (java.lang.Object com.ms.com._Guid int java.lang.String[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   824
      (com.ms.com.ComException::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   825
      (com.ms.com.Variant::int toInt ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   826
      (com.ms.com.Variant::double toDate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   827
      (com.ms.com.Variant::boolean toBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   828
      (com.ms.com.Variant::double toDouble ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   829
      (com.ms.com.Variant::long toCurrency ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   830
      (com.ms.com.Variant::void putVariantArray (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   831
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   832
      (com.ms.com.Variant::void putByteArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   833
      (com.ms.com.Variant::void putShortRef (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   834
      (com.ms.com.Variant::void putIntRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   835
      (com.ms.com.Variant::void putDoubleRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   836
      (com.ms.com.Variant::void putDateRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   837
      (com.ms.com.Variant::void putStringRef (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   838
      (com.ms.com.Variant::unsigned short getShortRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   839
      (com.ms.com.Variant::int getIntRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   840
      (com.ms.com.Variant::double getDoubleRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   841
      (com.ms.com.Variant::double getDateRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   842
      (com.ms.com.Variant::java.lang.String getStringRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   843
      (com.ms.com.Variant::java.lang.String internalToString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   844
      (com.ms.com.Variant::void initSafeArrayByRef (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   845
      (com.ms.com.Variant::java.lang.Object toCharArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   846
      (com.ms.com.Variant::java.lang.Object toDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   847
      (com.ms.com.Variant::byte toByte ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   848
      (com.ms.com.Variant::java.lang.Object getDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   849
      (com.ms.com.Variant::void putDispatch (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   850
      (com.ms.com.Variant::boolean getBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   851
      (com.ms.com.Variant::int toError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   852
      (com.ms.com.Variant::java.lang.Object toObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   853
      (com.ms.com.Variant::void initSafeArrayByVal (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   854
      (com.ms.com.Variant::java.lang.Object getObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   855
      (com.ms.com.Variant::void putObject (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   856
      (com.ms.com.Variant::com.ms.com.SafeArray toSafeArrayHelper (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   857
      (com.ms.com.Variant::void putFloatRef (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   858
      (com.ms.com.Variant::void putCurrencyRef (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   859
      (com.ms.com.Variant::void putErrorRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   860
      (com.ms.com.Variant::void putBooleanRef (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   861
      (com.ms.com.Variant::void putObjectRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   862
      (com.ms.com.Variant::void putByteRef (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   863
      (com.ms.com.Variant::java.lang.String getString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   864
      (com.ms.com.Variant::void putString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   865
      (com.ms.com.Variant::float getFloatRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   866
      (com.ms.com.Variant::long getCurrencyRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   867
      (com.ms.com.Variant::int getErrorRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   868
      (com.ms.com.Variant::boolean getBooleanRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   869
      (com.ms.com.Variant::java.lang.Object getObjectRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   870
      (com.ms.com.Variant::byte getByteRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   871
      (com.ms.com.Variant::float toFloat ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   872
      (com.ms.com.Variant::void putCharArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   873
      (com.ms.com.Variant::void putDispatchRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   874
      (com.ms.com.Variant::java.lang.Object getDispatchRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   875
      (com.ms.com.Variant::void putVariantArrayRef (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   876
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArrayRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   877
      (com.ms.com.Variant::void changeType (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   878
      (com.ms.com.Variant::void ncloneIndirect (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   879
      (com.ms.com.Variant::void nFinalize (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   880
      (com.ms.com.Variant::void nclone (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   881
      (com.ms.com.Variant::unsigned short toShort ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   882
      (com.ms.com.Variant::void putSafeArrayRefHelper (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   883
      (com.ms.com.Variant::com.ms.com.Variant[] toVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   884
      (com.ms.com.Variant::java.lang.Object toByteArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   885
      (com.ms.com.Variant::void TrueVariantClear ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   886
      (com.ms.awt.WToolkit::boolean MessageBeep (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   887
      (com.ms.applet.AppletPanel::boolean StartCodeDownload (int java.lang.String java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   888
      (com.ms.applet.AppletPanel::void securedCall0 (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   889
      (com.ms.applet.AppletPanel::com.ms.security.PermissionSet getDefaultPermissionsFromLoader (com.ms.vm.loader.URLClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   890
      (com.ms.dll.Win32Exception::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   891
      (com.ms.awt.WGuiCallback::boolean SetEvent (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   892
      (com.ms.awt.WGuiCallback::int CreateSemaphore (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   893
      (com.ms.awt.WGuiCallback::int ReleaseSemaphore (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   894
      (com.ms.awt.WGuiCallback::void userYield (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   895
      (com.ms.awt.WGuiCallback::int MsgWaitForMultipleObjects (int int[] boolean int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   896
      (com.ms.awt.WGuiCallback::int CreateEvent (int boolean boolean int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   897
      (com.ms.activeX.ActiveXToolkit::int GetSysColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   898
      (com.ms.awt.peer.NativeGraphics::void setPageDimension (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   899
      (com.ms.awt.peer.NativeGraphics::void setBkColour (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   900
      (com.ms.awt.peer.NativeGraphics::void getClipBounds (com.ms.awt.peer.NativeRect int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   901
      (com.ms.awt.peer.NativeGraphics::void pGetCharOutline (int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   902
      (com.ms.awt.peer.NativeGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   903
      (com.ms.awt.peer.NativeGraphics::void setXORMode (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   904
      (com.ms.awt.peer.NativeGraphics::int drawString (java.lang.String int int int int int int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   905
      (com.ms.awt.peer.NativeGraphics::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   906
      (com.ms.awt.peer.NativeGraphics::void drawArc (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   907
      (com.ms.awt.peer.NativeGraphics::void getInitialPageDimension (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   908
      (com.ms.awt.peer.NativeGraphics::void setVisRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   909
      (com.ms.awt.peer.NativeGraphics::void pSetForeground (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   910
      (com.ms.awt.peer.NativeGraphics::int pGetDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   911
      (com.ms.awt.peer.NativeGraphics::void drawPixels (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   912
      (com.ms.awt.peer.NativeGraphics::void drawPolygon (int[] int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   913
      (com.ms.awt.peer.NativeGraphics::void createFromImage (com.ms.awt.peer.INativeImage))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   914
      (com.ms.awt.peer.NativeGraphics::void endPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   915
      (com.ms.awt.peer.NativeGraphics::int pGetCharOutlineSize (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   916
      (com.ms.awt.peer.NativeGraphics::void pDrawBezier (int int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   917
      (com.ms.awt.peer.NativeGraphics::int drawBytes (byte[] int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   918
      (com.ms.awt.peer.NativeGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   919
      (com.ms.awt.peer.NativeGraphics::int drawChars (char[] int int int int int int int int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   920
      (com.ms.awt.peer.NativeGraphics::void drawT2Curve (float float float float float float int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   921
      (com.ms.awt.peer.NativeGraphics::void createFromPrintJob (java.lang.String com.ms.awt.peer.SPJData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   922
      (com.ms.awt.peer.NativeGraphics::void endPrintJob ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   923
      (com.ms.awt.peer.NativeGraphics::void pSetOrigin (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   924
      (com.ms.awt.peer.NativeGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   925
      (com.ms.awt.peer.NativeGraphics::void drawOval (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   926
      (com.ms.awt.peer.NativeGraphics::int pSetFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   927
      (com.ms.awt.peer.NativeGraphics::void setPaintMode (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   928
      (com.ms.awt.peer.NativeGraphics::void startPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   929
      (com.ms.awt.peer.NativeGraphics::void clearClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   930
      (com.ms.awt.peer.NativeGraphics::void createFromCopy (com.ms.awt.peer.INativeGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   931
      (com.ms.awt.peer.NativeGraphics::void scanLines (int int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   932
      (com.ms.awt.peer.NativeGraphics::void drawRoundRect (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   933
      (com.ms.awt.peer.NativeGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   934
      (com.ms.awt.peer.NativeGraphics::void clearRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   935
      (com.ms.awt.peer.NativeGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   936
      (com.ms.awt.peer.NativeGraphics::void createFromWindow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   937
      (com.ms.awt.peer.NativeGraphics::void drawPolyline (int[] int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   938
      (com.ms.awt.peer.NativeGraphics::void drawRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   939
      (com.ms.awt.peer.CToolkit::void callbackEventLoop (com.ms.awt.peer.IToolkitCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   940
      (com.ms.awt.peer.CToolkit::int getToolkitHwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   941
      (com.ms.awt.peer.CToolkit::int createCompHwnd (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   942
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionFont (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   943
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   944
      (com.ms.awt.peer.CNativeSystemIME::void setOpenStatus (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   945
      (com.ms.awt.peer.CNativeSystemIME::int getOpenStatus (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   946
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   947
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionResultString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   948
      (com.ms.net.wininet.WininetStreamHandlerFactory::int initNative (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   949
      (com.ms.com.SafeArray::void rawGetVariantAs (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   950
      (com.ms.com.SafeArray::void NSafeArrayInit (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   951
      (com.ms.com.SafeArray::float rawGetDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   952
      (com.ms.com.SafeArray::void NRawBoolCopyToJavaArray (int int boolean[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   953
      (com.ms.com.SafeArray::void validateArray (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   954
      (com.ms.com.SafeArray::void NSafeArrayCreateFromString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   955
      (com.ms.com.SafeArray::void rawSetString (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   956
      (com.ms.com.SafeArray::int getInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   957
      (com.ms.com.SafeArray::void setInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   958
      (com.ms.com.SafeArray::boolean getBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   959
      (com.ms.com.SafeArray::void setBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   960
      (com.ms.com.SafeArray::int computeOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   961
      (com.ms.com.SafeArray::void NSafeArrayNullInit ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   962
      (com.ms.com.SafeArray::void rawSetVariant (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   963
      (com.ms.com.SafeArray::float rawGetFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   964
      (com.ms.com.SafeArray::float getFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   965
      (com.ms.com.SafeArray::void setFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   966
      (com.ms.com.SafeArray::int computeOffset2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   967
      (com.ms.com.SafeArray::void rawSetDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   968
      (com.ms.com.SafeArray::java.lang.String asString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   969
      (com.ms.com.SafeArray::void NRawCopyToJavaArray (int int java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   970
      (com.ms.com.SafeArray::void NSafeArrayCreate (int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   971
      (com.ms.com.SafeArray::void NRawBoolCopyFromJavaArray (boolean[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   972
      (com.ms.com.SafeArray::void NSafeArrayDestroy (boolean boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   973
      (com.ms.com.SafeArray::int NSafeArrayCopy ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   974
      (com.ms.com.SafeArray::int rawGetInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   975
      (com.ms.com.SafeArray::boolean rawGetBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   976
      (com.ms.com.SafeArray::void rawSetFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   977
      (com.ms.com.SafeArray::java.lang.String rawGetString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   978
      (com.ms.com.SafeArray::int NTotalNumElems ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   979
      (com.ms.com.SafeArray::double getDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   980
      (com.ms.com.SafeArray::void setDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   981
      (com.ms.com.SafeArray::void Nreinit (com.ms.com.SafeArray))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   982
      (com.ms.com.SafeArray::int getPhysicalSafeArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   983
      (com.ms.com.SafeArray::int NgetdwordAt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   984
      (com.ms.com.SafeArray::void NRawCopyFromJavaArray (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   985
      (com.ms.com.SafeArray::void rawSetBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   986
      (com.ms.com.SafeArray::void rawSetInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   987
      (com.ms.awt.peer.CNativeComponent::void invalidate (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   988
      (com.ms.awt.peer.CNativeComponent::void hideModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   989
      (com.ms.awt.peer.CNativeComponent::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   990
      (com.ms.awt.peer.CNativeComponent::void setOnTop (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   991
      (com.ms.awt.peer.CNativeComponent::void registerDragDrop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   992
      (com.ms.awt.peer.CNativeComponent::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   993
      (com.ms.awt.peer.CNativeComponent::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   994
      (com.ms.awt.peer.CNativeComponent::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   995
      (com.ms.awt.peer.CNativeComponent::void setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   996
      (com.ms.awt.peer.CNativeComponent::void getBounds (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   997
      (com.ms.awt.peer.CNativeComponent::int gethwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   998
      (com.ms.awt.peer.CNativeComponent::void showModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   999
      (com.ms.awt.peer.CNativeComponent::void setCursor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1000
      (com.ms.awt.peer.CNativeComponent::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1001
      (com.ms.awt.peer.CNativeComponent::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1002
      (com.ms.awt.peer.CNativeComponent::void callDefWindowProc (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1003
      (com.ms.awt.peer.CNativeComponent::void registerCustomDropTarget (com.ms.com.IUnknown))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1004
      (com.ms.awt.peer.CNativeComponent::void setNoActivate (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1005
      (com.ms.awt.peer.CNativeComponent::void getPlaceOnScreen (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1006
      (com.ms.awt.peer.CNativeComponent::void beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1007
      (com.ms.awt.peer.CNativeComponent::void clippedReshape (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1008
      (com.ms.awt.peer.CNativeComponent::void setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1009
      (com.ms.awt.peer.CNativeComponent::void setIcon (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1010
      (com.ms.awt.peer.CNativeComponent::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1011
      (com.ms.awt.peer.CNativeComponent::void setFrameHost (com.ms.awt.peer.IBrowserAppletFrameCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1012
      (com.ms.awt.peer.CNativeComponent::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1013
      (com.ms.awt.peer.CNativeComponent::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1014
      (com.ms.awt.peer.CNativeComponent::void updateInsets (com.ms.awt.peer.NativeInsets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1015
      (com.ms.awt.peer.CNativeComponent::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1016
      (com.ms.awt.peer.CNativeComponent::void initFromJavaWindow (int com.ms.awt.peer.IComponentCallback com.ms.awt.peer.INativeComponent com.ms.awt.peer.IToolkit int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1017
      (com.ms.awt.peer.CNativeComponent::void init (int com.ms.awt.peer.IComponentCallback com.ms.awt.peer.INativeComponent com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1018
      (com.ms.awt.peer.CNativeComponent::void beginDrag (com.ms.awt.peer.INativeDragCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1019
      (com.ms.fx.RegionConverter::int computeNativeRegion (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1020
      (com.ms.fx.RegionConverter::int[] computeJavaRegion (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1021
      (com.ms.net.wininet.URLUtils::java.lang.String canonicalizeURL (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1022
      (com.ms.net.wininet.URLUtils::java.lang.String combineURL (java.lang.String java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1023
      (com.ms.awt.peer.NativeFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1024
      (com.ms.awt.peer.NativeFontMetrics::int stringWidth (java.lang.String int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1025
      (com.ms.awt.peer.NativeFontMetrics::int charsWidth (char[] int int int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1026
      (com.ms.awt.peer.NativeFontMetrics::java.lang.String init (com.ms.awt.peer.INativeGraphics int[] java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1027
      (com.ms.io.console.Console::int MessageBox (int java.lang.String java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1028
      (com.ms.awt.peer.NativeFileDialog::void show (com.ms.awt.peer.IFileDialogCallback java.lang.String java.lang.String java.lang.String int com.ms.awt.peer.INativeComponent int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1029
      (com.ms.security.management.SecurityZone::byte[] pLoadCustomPermissions (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1030
      (com.ms.awt.peer.NativeImage::int setBytePixelsDirected (int int int int com.ms.awt.peer.DirectColourModelData byte[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1031
      (com.ms.awt.peer.NativeImage::void create (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1032
      (com.ms.awt.peer.NativeImage::int setIntPixelsIndexed (int int int int int[] int int[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1033
      (com.ms.awt.peer.NativeImage::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1034
      (com.ms.awt.peer.NativeImage::int getIcon (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1035
      (com.ms.awt.peer.NativeImage::int setBytePixelsIndexed (int int int int int[] int byte[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1036
      (com.ms.awt.peer.NativeImage::void sendPixels (com.ms.awt.peer.SPData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1037
      (com.ms.awt.peer.NativeImage::void fillPixels (com.ms.awt.peer.SPData byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1038
      (com.ms.awt.peer.NativeImage::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1039
      (com.ms.awt.peer.NativeImage::void init (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1040
      (com.ms.awt.peer.NativeImage::int setIntPixelsDirected (int int int int com.ms.awt.peer.DirectColourModelData int[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1041
      (com.ms.awt.peer.NativeImage::void imageDrawStretched (com.ms.awt.peer.INativeGraphics int int int int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1042
      (com.ms.awt.peer.NativeImage::int finish (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1043
      (com.ms.awt.peer.NativeImage::void imageDraw (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1044
      (com.ms.awt.peer.NativeResource::java.lang.String loadString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1045
      (com.ms.awt.peer.NativeResource::int openDialogFromID (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1046
      (com.ms.awt.peer.NativeResource::boolean attach (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1047
      (com.ms.awt.peer.NativeResource::void loadBytes (int int java.lang.String byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1048
      (com.ms.awt.peer.NativeResource::int getSize (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1049
      (com.ms.awt.peer.NativeResource::void detach ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1050
      (com.ms.awt.peer.NativeResource::int openDialogFromName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1051
      (com.ms.net.wininet.WininetURLConnection::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1052
      (com.ms.com.DispatchProxy::void finalize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1053
      (com.ms.com.DispatchProxy::void init (com.ms.com._Guid java.lang.reflect.Method[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1054
      (com.ms.net.wininet.WininetInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1055
      (com.ms.net.wininet.WininetInputStream::int read (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1056
      (com.ms.net.wininet.WininetInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1057
      (com.ms.net.wininet.WininetInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1058
      (com.ms.net.wininet.WininetInputStream::void connect (java.lang.String boolean boolean java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1059
      (com.ms.vm.loader.CabSignatureInfo::com.ms.vm.loader.CabSignatureInfo extractFromFile0 (java.lang.String com.ms.security.management.SecurityPolicy))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1060
      (com.ms.net.wininet.http.HttpInputStream::byte[] getResponseHeaders ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1061
      (com.ms.net.wininet.http.HttpInputStream::void close0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1062
      (com.ms.net.wininet.http.HttpInputStream::void connect (java.lang.String int java.lang.String boolean boolean boolean boolean byte[] byte[] java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1063
      (com.ms.vm.loader.CabCracker::int GetTempFileName (java.lang.StringBuffer java.lang.String int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1064
      (com.ms.vm.loader.CabCracker::void getBytes0 (int int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1065
      (com.ms.vm.loader.CabCracker::void cleanup ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1066
      (com.ms.vm.loader.CabCracker::int GetTempPath (int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1067
      (com.ms.vm.loader.CabCracker::void load0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1070
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1071
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1073
performance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1074
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1075
     JAVA::BenchMark new loopmark        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1076
     JAVA::BenchMark new logicmark  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1077
     JAVA::BenchMark new sievemark       
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1078
     JAVA::BenchMark new methodmark      
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1079
     JAVA::BenchMark new stringmark  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1080
     JAVA::BenchMark new newstringmark                
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1081
     JAVA::BenchMark new neweststringmark               
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1084
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1085
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1086
		    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1087
 linux:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1088
   P6/233 No JIT                 84         87        90          40          22                                       17              10
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1089
		      103       133        142       137          28          73       109    167     18    140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1090
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1091
   P6/233 JIT                   479       2459       393         649          28                                       21              12
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1092
   P6/233 JIT         473      1805       3046       439         986          28                                       21              12
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1093
		      533      1808       3382       613        1003          25       105    143      1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1094
		      668      3330       3644       740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1095
		      793      4116       3731      1243        1365         120       103     79      2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1096
		      914      4480       4061                  2290          68       106    158     19     34
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1097
		      941      4607       4149      1238        2434          75       101    152     18     32
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1098
									     591              164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1099
		     1087                           1836                     800       110                   35
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1100
		     1102      4592       4270      1844        2381         841       109    169     21     35
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1101
		     1177      4608       4309      1810        2432         895       532    182     20     35
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1103
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1104
 w95
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1105
   P5/200 JIT          90        95         90        95         686          18        60     54      7
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1106
		      428      1657       2385       684         957          21        61     62      9
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1107
		      541      2886       2589       823         976          18        62     55      7
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1108
		      583      3062       2635       842         861         223        65     57      8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1109
		      616      3075       2438      1081        1324         218        64     54      8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1110
		      718      3138       2755      1085        1200         816        63     48      9      7
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1112
		    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1113
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1115
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1117
performance2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1118
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1119
     symantec benchmarks
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1120
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1122
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1123
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1124
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1126
   ST/X+J Linux         
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1127
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1128
   No JIT          352767         354597         69585    43048  101638  28961 108839  48815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1130
   ST/X+J Linux                  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1131
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1132
   JIT             128724         116810         20259    39733   83160  27613  52093  33166  43996  545554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1133
		   124744         101428         17239    10052    8264  14004  38821  23252  33709  374660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1134
   +IINC           120324                                  7265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1135
   +IADD op2       100173          90737         18128     6996    7423  17093  48559  44209  57056  390374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1136
   +ISUB op2                       90460         17547             5921                       57056  390461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1137
   +ICMPEQ/NE       99785          90147                           5792                43482  56486  388255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1138
   +ICMP            87398          78214         15784     7574    5628  12812  38481  24654  32252  302797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1139
   +IFICMPLE        84198          74928         13814     5650          11674         23241         293118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1140
   +IFICMPxx        76867          69738         12208                          37505  21973  32104  273569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1141
   +IFICMPEQ/NE                                                    5580  11202         21723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1142
   const IFICMPxx                                11856             5463  11032  37372                272726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1143
   +lea for add/sub
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1144
   +BALOAD                                       11700     4600    5015   9431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1145
   +BASTORE                                                3279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1146
   +CALOAD/CASTORE                                                        8907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1147
   regSave change   66119          60365          9997             4917  15386  37851  38202  50027  286497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1148
		    64858          58360          9476             4889  15001  37211  36288  48313  278478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1149
		    63146          55949          9302                   14899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1150
		    62970          56085          9352     3226    4837   8779  37573  22815  33899  241297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1151
   -O               43662          40292          7181     2530    4696   8170  34555  22116  32337  195539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1153
   +IALOAD          39162          36347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1154
   +IASTORE         32461          30663          4299             3667                19556  30563  166868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1155
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1156
   -IALOAD/IASTORE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1157
										34167  19347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1158
										       19232  29726  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1159
										       18821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1160
   +AALOAD/BALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1161
		    41490          39527          6776     3315    4077   8443  33895  19152  28018  184693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1162
		    41291          37034          6593                          32682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1163
   +ATHROW                                                                6449                       180079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1164
   +IASTORE         38848          35601          6219             3796   6122         17869  30085  175106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1165
   IINC delayed code
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1166
   +ANEWARRAY                                              3263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1167
   +LADD/LSUB const 38719          35256                                  6062  27071                172859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1169
							   2837                 22835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1170
   +ISTORE into arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1171
									  3080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1172
   quick L2I for ints                                                     2774  21184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1173
   +*ASTORE / *ALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1174
    again                                                  1621    3654   1525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1175
   +CHECKCAST                                                      3574                       25810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1176
                                                                
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1177
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1178
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1179
   ST/X+J Win95         
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1180
   200Mhz P5
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1181
   JIT              78490          77060         15220     4840    6370   9180  73160  36080         351700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1182
				   76900         13560             5500   9010         35200         348600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1183
										66080         69920  370750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1184
   +IADD non consts 76620          73210         13180     3790                 63550         58880  356900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1185
											      51740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1186
		    77390          72450         12520     3900    6040   8950  62450  34330  57780  335810    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1187
		    77220          71950                           5270   8840                       338650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1188
		    72390          70690                                                      48010  327370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1189
		    74910          66740         11420                    8620  61730  33340  47350  313940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1190
   +xALOAD/JMP_ZERO
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1191
		    71740                                  2800             
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1192
		    71460          65250         11540     2750                 62180  33840  50750  311660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1193
   +LCMP                                                                        59100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1194
   better abs(I)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1195
   +xALOAD/IF_ICMPx 66130          61520         12080     3300    5280   8190  56510  33830  50310  297150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1196
   elim dummy static                                               5210                       48270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1197
   methods                                                                                    44160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1198
		   119020         112440         19330     3070    4560   2640  56960  37730  52790  408540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1199
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1200
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1203
   Sun JDK         274625         244461         52676    50653   65183  26668  78133  28572  61608  882583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1204
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1206
   Microsoft J++     9684           8452          2874     1733    3535   3665   3836   4746  25717   64242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1207
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1209
   Symantec Cafe    14541          12198          3686     1922    4527   3325   3425  12969  26829   83422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1210
   JIT 1.02
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1211
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1213
   Symantec Cafe     8292           6970          2714     1613    3345   3235   2013   4516  13180   45878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1214
   JIT 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1215
   (90Mhz P5)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1216
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1218
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1219
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1221
   b := JAVA::BubbleSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1222
   b perform:#'setData(JJ)V' with:10000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1223
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1224
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1225
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1226
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1227
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1228
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1230
   b := JAVA::QSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1231
   b perform:#'setData(JJ)V' with:500000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1232
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1233
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1234
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1235
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1236
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1237
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1239
   t := JAVA::Tree new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1240
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1241
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1242
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1243
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1244
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1245
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1246
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1248
   t := JAVA::Array new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1249
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1250
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1251
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1252
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1253
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1255
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1257
!JavaVM class methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1259
compile:source selector:smalltalkSelector asJavaMethod:javaSelector fakedSource:fakedSource in:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1260
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1261
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1262
    |cloneCode|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1264
    (aClass implements:javaSelector) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1265
        Class packageQuerySignal answer:'__temporary__'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1266
        do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1267
            aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1268
                compile:source
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1269
                classified:'java support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1270
                logged:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1271
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1273
        cloneCode := aClass compiledMethodAt:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1274
        cloneCode source:fakedSource.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1276
        Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1277
            aClass removeSelector:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1278
            aClass addSelector:javaSelector withMethod:cloneCode.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1279
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1280
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1282
    "Created: / 5.11.1998 / 19:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1283
    "Modified: / 5.11.1998 / 19:37:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1284
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1286
deinitialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1287
    StandardThreadGroup := nil.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1288
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1289
    KnownWindows notNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1290
        KnownWindows do: [:v | v isTopView ifTrue: [ v destroy ] ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1291
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1292
    JavaWindowGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1293
    KnownWindows := nil.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1294
    OpenFileTable := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1295
    JavaMethods := nil.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1296
    SystemClassLoader := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1298
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1299
     JavaVM deinitialize"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1301
    "Created: / 03-01-1998 / 21:28:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1302
    "Modified: / 03-12-1998 / 20:33:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1303
    "Modified: / 28-01-2011 / 14:11:35 / Marcel Hlopko <hlopik@gmail.com>"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1304
    "Modified: / 16-11-2011 / 09:46:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1305
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1307
deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1308
    "deinstall additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1309
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1310
    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1311
        #'clone()Ljava/lang/Object;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1312
        #'equals(Ljava/lang/Object;)Z'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1313
        #'toString()Ljava/lang/String;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1314
        #'getClass()Ljava/lang/Class;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1315
     ) do:[:sel |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1316
        (Object implements:sel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1317
            Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1318
                Object removeSelector:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1319
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1320
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1321
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1323
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1324
     self deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1325
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1327
    "Created: / 4.2.1998 / 21:37:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1328
    "Modified: / 5.12.1998 / 15:27:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1329
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1330
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1331
flushClasses
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1332
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1333
    ClassRegistry notNil ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1334
        ClassRegistry flush
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1335
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1336
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1337
    "Created: / 30-10-2011 / 16:09:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1338
!
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1339
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1340
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1341
    DUMMY_LONG_HIGHWORD := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1342
    DUMMY_DOUBLE_HIGHWORD := 2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1343
    StandardThreadGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1344
    NoAudio := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1345
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1346
    "/ NoAudio := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1347
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1348
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1349
    FullExceptionTrace := StackTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1350
    WindowOPTrace := DrawOPTrace := EventTrace := ThreadTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1351
    MonitorTrace := ExceptionTrace := FileOpenTrace := FileIOTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1352
    ExceptionDebug := ExitDebug := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1353
    ExceptionDebugPatterns := Set new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1354
    WindowCreationTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1355
    FileOpenConfirmation := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1356
    SocketConnectConfirmation := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1357
    WindowOPTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1358
    MonitorTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1359
    ThreadTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1360
    UnhandledJavaExceptionSignal := (Signal new) mayProceed: true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1361
    UnhandledJavaExceptionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1362
        message: #unhandledJavaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1363
    UnhandledJavaExceptionSignal notifierString: 'unhandled java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1364
    JavaExceptionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1365
    JavaExceptionSignal nameClass: self message: #javaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1366
    JavaExceptionSignal notifierString: 'java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1367
    UnimplementedInstructionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1368
    UnimplementedInstructionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1369
        message: #unimplementedInstructionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1370
    UnimplementedInstructionSignal notifierString: 'unimplemented instruction'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1371
    UnimplementedNativeMethodSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1372
    UnimplementedNativeMethodSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1373
        message: #unimplementedNativeMethodSignal.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1374
    UnimplementedNativeMethodSignal 
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1375
        notifierString: 'unimplemented native method'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1376
    BadMessageSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1377
    BadMessageSignal nameClass: self message: #badMessageSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1378
    BadMessageSignal notifierString: 'invalid message to JAVA object'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1379
    InternalErrorSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1380
    InternalErrorSignal nameClass: self message: #internalErrorSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1381
    InternalErrorSignal notifierString: 'internal error'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1382
    CallHandlerSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1383
    CallHandlerSignal nameClass: self message: #callHandlerSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1384
    CallHandlerSignal notifierString: 'internal signal'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1385
    StdinReplacementFileQuerySignal := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1386
    StdinReplacementFileQuerySignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1387
        message: #stdinReplacementFileQuerySignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1388
    StdinReplacementFileQuerySignal notifierString: 'asking for stdin stream'.
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1389
    JavaPrivilegedAccessQuery := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1390
    JavaPrivilegedAccessQuery defaultAnswer: false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1391
    AssertionsEnabled := true.
1069
d5d204ceb991 JavaVM: Added ClassRegistry initialization into JavaVM>>initialize
vranyj1
parents: 1063
diff changeset
  1392
    ClassRegistry := JavaClassRegistry new.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1393
    FinalizationEnabled := true.
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1394
    FinalizationLobby := Registry new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1395
    EagerResolvingEnabled := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1397
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1398
     JavaVM initialize"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  1399
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1400
    "Created: / 02-01-1998 / 18:02:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1401
    "Modified: / 02-12-1998 / 23:02:22 / cg"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1402
    "Modified: / 09-10-2011 / 20:29:10 / Marcel Hlopko <hlopik@gmail.com>"
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1403
    "Modified: / 14-11-2011 / 21:12:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1404
    "Modified: / 08-12-2011 / 21:06:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1405
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1407
initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1408
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1410
    "/ since we use smalltalk Arrays for JavaArray, some
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1411
    "/ additional (java-) protocol is required.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1412
    "/ This is also useful, when Smalltalk objects are passed to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1413
    "/ java ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1414
    "/ We should implement all of the java.lang.Object protocol in
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1415
    "/ Object, to be on the bright side of life; more of this later ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1417
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1418
        compile:'__clone
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1419
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1420
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1421
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1422
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1424
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1425
        selector:#'__clone' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1426
        asJavaMethod:#'clone()Ljava/lang/Object;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1427
        fakedSource:'#''clone()Ljava/lang/Object;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1428
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1429
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1430
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1431
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1433
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1434
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1436
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1438
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1439
        compile:'__equals:arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1440
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1441
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1442
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1443
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1445
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1446
        selector:#'__equals:' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1447
        asJavaMethod:#'equals(Ljava/lang/Object;)Z' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1448
        fakedSource:'#''equals(Ljava/lang/Object;)Z''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1449
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1450
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1451
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1452
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1453
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1454
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1455
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1457
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1459
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1460
        compile:'__toString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1461
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1462
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1463
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1464
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1466
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1467
        selector:#'__toString' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1468
        asJavaMethod:#'toString()Ljava/lang/String;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1469
        fakedSource:'#''toString()Ljava/lang/String;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1470
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1471
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1472
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1473
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1475
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1476
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1478
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1480
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1481
        compile:'__getClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1482
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1483
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1484
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1485
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1487
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1488
        selector:#'__getClass' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1489
        asJavaMethod:#'getClass()Ljava/lang/Class;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1490
        fakedSource:'#''getClass()Ljava/lang/Class;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1491
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1492
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1493
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1494
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1496
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1497
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1499
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1501
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1502
        compile:'__hashCode
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1503
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1504
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1505
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1506
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1508
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1509
        selector:#'__hashCode' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1510
        asJavaMethod:#'hashCode()I' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1511
        fakedSource:'#''hashCode()I''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1512
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1513
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1514
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1515
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1516
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1517
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1518
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1521
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1522
     self initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1523
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1525
    "Modified: / 28-01-1997 / 19:38:58 / stefan"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1526
    "Modified: / 22-01-1998 / 21:23:40 / av"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1527
    "Created: / 04-02-1998 / 21:35:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1528
    "Modified: / 30-12-1998 / 21:07:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1529
    "Modified: / 25-10-2010 / 16:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1530
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1532
initializeBaseClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1533
    "load req'd base classes"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1534
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1535
    #( 'java.lang.Object'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1536
     'java.lang.Class'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1537
     'java.lang.String'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1538
     'java.lang.System' ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1539
            do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1540
                :cName | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1541
                (self classForName: cName) isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1542
                    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1543
                        warn: ('JavaVM: could not find required class: ' , cName asText allBold 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1544
                                , '\\Please check the Java settings (javaHome)') withCRs.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1545
                    AbortSignal raise.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1546
                    ^ self
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1547
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1548
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1549
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1550
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1551
     self initializeBaseClasses"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1552
    "Created: / 3.1.1998 / 21:13:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1553
    "Modified: / 23.12.1999 / 19:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1554
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1555
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1556
initializeJavaResources
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1557
    LockTable := WeakIdentityDictionary new.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1558
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1559
    LockTableAccess name: 'JavaVM lock table access mutex'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1560
    WaitTable := IdentityDictionary new.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1561
    WaitTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1562
    WaitTableAccess name: 'JavaVM wait table access mutex'.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1563
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1564
        log: 'Initializing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1565
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1566
        facility: #JVM.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1567
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1568
    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1569
    log: 'Initializing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1570
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1571
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1572
        AcquiredMonitorsPerProcess := IdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1573
    self initializePrimitiveClasses.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1574
    self initializeOpenFileTable.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1575
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1576
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1577
     JavaVM releaseAllMonitors"
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1578
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1579
    "Created: / 02-01-1998 / 18:04:05 / cg"
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1580
    "Modified: / 07-01-1998 / 22:58:10 / cg"
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1581
    "Modified: / 25-10-2010 / 19:14:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1582
    "Created: / 16-11-2011 / 14:23:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1583
!
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1584
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1585
initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1586
    OpenFileTable := OrderedCollection 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1587
			with:Stdin 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1588
			with:(JavaConsoleStream ? Stdout)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1589
			with:(JavaConsoleStream ? Stderr).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1591
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1592
     JavaVM initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1593
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1595
    "Modified: / 6.8.1997 / 00:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1596
    "Created: / 2.1.1998 / 18:04:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1597
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1599
initializePrimitiveClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1600
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1601
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1602
    "/    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1603
    "/        (#byte    'B' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1604
    "/        (#short   'S' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1605
    "/        (#int     'I' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1606
    "/        (#long    'J' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1607
    "/        (#boolean 'Z' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1608
    "/        (#char    'C' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1609
    "/        (#float   'F' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1610
    "/        (#double  'D' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1611
    "/        (#void    'V' 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1612
    "/    ) triplesDo:[:nm :sig :len |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1613
    "/        |jClass classInst|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1614
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1615
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1616
    "/        "/ create a javaClass for it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1617
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1618
    "/        jClass := Java at:'java.lang.Class'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1619
    "/        jClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1620
    "/            classInst := jClass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1621
    "/            JavaClasses at:nm put:classInst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1622
    "/            JavaClasses at:classInst put:nm.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1623
    "/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1624
    "/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1625
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1626
     self initializePrimitiveClasses"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1627
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1628
    "Modified: / 22-10-1998 / 01:56:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1629
    "Modified: / 20-12-2010 / 23:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1630
    "Modified: / 28-01-2011 / 14:57:38 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1631
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1633
initializeReflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1635
    Reflection := JavaVM::Reflection for: self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1637
    "Created: / 21-12-2010 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1638
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1640
initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1641
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1642
     being already loaded. (used with jdk < 1.2)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1644
    LibPath := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1645
                        '__builtIn__' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1646
                        '/usr/local/lib' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1647
                        '/usr/local/lib/java'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1648
                ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1650
    SimulatedLibs := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1651
                        '__builtIn__/net' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1652
                        '__builtIn__/awt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1653
                        '__builtIn__/tawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1654
                        '__builtIn__/winawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1655
                        '__builtIn__/jpeg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1656
                        '__builtIn__/mmedia'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1657
                        '__builtIn__/zip'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1658
                        '__builtIn__/math'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1659
                        '__builtIn__/sysresource'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1661
                        "/ KAVA ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1662
                        '__builtIn__/agent'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1664
                        "/ MS-java ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1665
                        '__builtIn__/msawt'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1666
                        '__builtIn__/javart'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1668
                        "/ 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1669
                        '__builtIn__/jpeg_sun' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1670
                      ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1672
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1673
     self initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1674
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1676
    "Created: / 4.1.1998 / 19:05:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1677
    "Modified: / 17.11.1998 / 23:53:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1678
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1680
initializeSimulatedNativeLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1681
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1682
     being already loaded (used with jdk >= 1.2)"
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1683
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1684
    OperatingSystem isUNIXlike ifTrue: [
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1685
        SimulatedNativeLibs := #( 'libawt.so' 'libnet.so' 'libcmm.so' 'libzip.so' 'libmanagement.so'  'libjpeg.so' ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1686
        ^ self.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1687
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1688
    OperatingSystem isMSWINDOWSlike ifTrue: [
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1689
        SimulatedNativeLibs := #( 'awt.dll' 'net.dll' 'cmm.dll' 'zip.dll' ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1690
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1691
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1692
    SimulatedNativeLibs := #().
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1693
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1694
    "
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1695
     self initializeSimulatedNativeLibs"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1697
    "Modified: / 27-01-1998 / 18:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1698
    "Modified: / 01-04-2011 / 23:02:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1699
    "Modified: / 03-11-2011 / 19:00:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1702
initializeSimulatedNativeMemory
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1704
    SimulatedNativeMemory := JavaNativeMemory new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1706
    "Created: / 07-12-2010 / 21:07:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1707
    "Modified: / 07-12-2010 / 23:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1708
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1709
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1710
initializeSystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1711
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1712
    | java_lang_ClassLoader |
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1713
    
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1714
    java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1715
    (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1716
        SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1717
    ].
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1718
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1719
    "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1720
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1721
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1722
initializeSystemPropertiesInto: props 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1723
    | cpu  os  jHome |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1724
    "/ use JAVA compatible cpu-name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1725
    cpu := OperatingSystem getCPUType.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1726
    cpu = 'i386' ifTrue: [ cpu := 'ix86' ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1727
    SimulatedOS notNil ifTrue: [ os := SimulatedOS ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1728
        os := OperatingSystem getOSType.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1729
        os := os asUppercaseFirst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1730
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1731
    props at: 'java.version' put: '1'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1732
    props at: 'java.vendor' put: 'eXept Software AG & SWING Reseach Group'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1733
    props at: 'java.vendor.url'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1734
        put: 'http://www.exept.de & http://swing.fit.cvut.cz'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1735
    props at: 'java.vm.name' put: 'Smalltalk/X'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1736
    (jHome := self defaultJAVAHome) notNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1737
        props at: 'java.home' put: (jHome asFilename pathName).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1738
    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1739
    props at: 'java.class.version' put: '1'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1740
    props at: 'java.class.path' put: (self defaultCLASSPATH).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1741
    props at: 'java.ext.dirs' put: (self defaultExtDirs).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1742
    props at: 'os.name' put: os.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1743
    props at: 'os.arch' put: cpu.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1744
    props at: 'os.version' put: '1'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1745
    props at: 'file.separator' put: (Filename separator asString).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1746
    props at: 'path.separator' put: OperatingSystem pathSeparator asString.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1747
    props at: 'line.separator' put: (Character cr asString).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1748
    props at: 'user.name' put: (OperatingSystem getLoginName).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1749
    props at: 'user.home'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1750
        put: (OperatingSystem getHomeDirectory ? Filename currentDirectory name).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1751
    props at: 'user.dir'
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  1752
        put: (UserPreferences current javaTestsDirectory asFilename 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  1753
                / 'libjava' asFilename) pathName.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1754
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1755
    "/ props at:'user.dir'           put:(Filename currentDirectory pathName).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1756
    "/props at:'awt.toolkit'        put:(self defaultWindowingToolKit).
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1757
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1758
    props at: 'user.country' put: 'US'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1759
    props at: 'hotjava.home' put: (self defaultHotJavaHome).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1760
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1761
    "/ new with jdk 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1762
    "/ undocumented ?
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1763
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1764
    props at: 'file.encoding.pkg' put: 'sun.io'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1765
    props at: 'file.encoding' put: 'UTF-8'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1766
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1767
    "/ suppress copyright view in appletViewer ...
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1768
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1769
    props at: 'appletviewer.version' put: '1.1'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1770
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1771
    "/ new with jdk 1.2
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1772
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1773
    props at: 'java.awt.graphicsenv' put: 'sun.awt.X11GraphicsEnvironment'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1774
    props at: 'java.awt.fonts' put: '/usr/lib/X11/fonts'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1775
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1776
    "/ jws
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1777
    "/props at:'jws.home'             put:(self defaultJWSHome).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1778
    "/ new with jws 2.0 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1779
    "/props at:'jws.startcmd'         put:'jws.showwin.mainide'.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1780
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1781
    props at: 'java.library.path' put: self defaultJavaLibraryPath.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1782
    props at: 'sun.boot.library.path' put: self defaultSunBootLibraryPath.
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1783
    props at: 'stx.libjava.tomcat.dir'
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1784
        put: (JavaLibraries directory / 'tomcat6') pathName.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1785
    
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  1786
"/    props at: 'sun.misc.URLClassPath.debug' put: 'true'. 
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1787
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1788
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1789
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1790
    "
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1791
     self initializeSystemPropertiesInto:(Dictionary new)"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1793
    "Created: / 03-01-1998 / 14:26:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1794
    "Modified: / 27-01-2000 / 02:20:18 / cg"
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  1795
    "Modified: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1796
    "Modified (format): / 03-11-2011 / 12:40:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1797
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1798
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1799
initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1800
    "Force off JIT compiler for Java code - it hasn't been
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1801
     updated to reflect changes in jinterpret.c.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1802
     Following >>make it working, make it fast<< rule"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1803
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1804
    ObjectMemory
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1805
        javaJustInTimeCompilation: false;
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1806
        javaNativeCodeOptimization: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1807
     "Java requires a huge stack. Change default to 5 MB"
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1808
    Process defaultMaximumStackSize: 1024 * 1024 * 4.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1809
    ClassRegistry := JavaClassRegistry for: self.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1810
    ClassLoaderQuerySignal := Query new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1811
    JavaObject autoload.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1812
    JavaContext autoload.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1813
    MonitorTrace ifNil: [ self initialize ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1814
    self initializeAdditionalJavaProtocol.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1815
    self initializeJavaResources.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1816
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1817
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1818
    Java markAllClassesUninitialized.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1819
    ZipCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1820
    ZipEntryCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1821
    ZipInflaters := OrderedCollection new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1822
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1823
    "/ force re-resolving;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1824
    "/ otherwise, class-inits would not be called
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1825
    "/ by resolver ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1826
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1827
    JavaNativeMethod flushAllCachedNativeMethods.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  1828
    JavaMethod 
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1829
        allSubInstancesDo: [
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1830
            :m | 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1831
            m checked: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1832
            m code: nil.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1833
        ].
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1834
    ObjectMemory flushCaches.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1835
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1836
    "/ sigh - must flush inline caches.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1837
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1838
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1839
    self initializeSimulatedLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1840
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1841
    "/ < jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1842
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1843
    self initializeSimulatedNativeLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1844
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1845
    "/ >= jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1846
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1847
    self initializeSimulatedNativeMemory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1848
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1849
    "/>  jdk 6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1850
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1851
    self initializeOpenFileTable.
907
9ab15562799b JavaVM: Initialization fix
vranyj1
parents: 906
diff changeset
  1852
    self initializeReflection.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1853
    self initializeBaseClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1854
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1855
    Java initSystemClass.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1856
    self initializeSystemClassLoader.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1857
    ObjectMemory addDependent: self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1858
    StartupTime := OperatingSystem getOSTime.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1860
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1861
     JavaVM initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1862
     JavaVM initializeVM."
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1863
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1864
    "Created: / 03-01-1998 / 21:29:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1865
    "Modified: / 14-12-1999 / 18:58:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1866
    "Modified: / 15-10-2010 / 15:27:45 / Jan Kurs <kurs.jan@post.cz>"
1070
vranyj1
parents: 1069
diff changeset
  1867
    "Modified: / 01-11-2011 / 22:16:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1868
    "Modified: / 16-11-2011 / 14:27:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1869
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1871
initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1872
    |uClass updater p|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1874
    uClass := JAVA::sun::awt::ScreenUpdater.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1875
    uClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1876
        updater := uClass instVarNamed:'updater'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1877
        updater notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1878
            p := self stProcessForJavaThread:updater
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1879
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1880
        (updater isNil or:[p isNil or:[p isDead]]) isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1881
            self initializeVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1882
            ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1883
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1884
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1886
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1887
        self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1888
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1889
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1890
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1891
     JavaVM initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1892
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1894
    "Created: / 15.1.1998 / 17:32:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1895
    "Modified: / 24.12.1999 / 02:18:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1898
reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1899
    |classesToInit|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1901
    self releaseAllJavaResources.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1903
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1905
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1906
    Java markAllClassesUninitialized.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1908
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1910
    classesToInit := JavaClass orderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1911
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1913
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1914
"/    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1916
    classesToInit do:[:jClass |
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1917
        jClass classInit
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1918
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1919
    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1920
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1921
    "Created: / 12-11-1998 / 15:37:52 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1922
    "Modified: / 17-11-1998 / 16:10:11 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1923
    "Modified: / 14-09-2011 / 22:06:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1924
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1926
reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1927
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1928
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1929
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1930
    (JavaEventQueueThread isNil or:[JavaEventQueueThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1931
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1932
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1933
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1934
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1935
     JavaVM reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1936
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1937
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1938
    "Created: / 24.11.1998 / 15:45:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1939
    "Modified: / 24.12.1999 / 02:36:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1940
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1942
releaseAllJavaResources
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1943
    self deinitialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1944
    FirstWindowCreationSemaphore := Semaphore new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1945
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1946
    LoadedLibs := nil.
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1947
    LoadedNativeLibs := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1948
    ImageStretchCache := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1949
    LastGraphics := LastGC := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1950
    SimulatedNativeMemory := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1951
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1952
    self terminateAllThreads.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1953
    "/self releaseAllMonitors.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1954
    self releaseAllWindows.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1955
    self releaseAllStreams.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1956
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1957
    "
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1958
     JavaVM releaseAllJavaResources"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1959
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1960
    "Created: / 07-01-1998 / 22:49:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1961
    "Modified: / 24-12-1999 / 02:33:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1962
    "Modified: / 17-12-2010 / 17:51:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1963
    "Modified: / 16-11-2011 / 20:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1964
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1966
releaseAllMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1967
    LockTable := WeakIdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1968
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1969
    LockTableAccess name: 'JavaVM lock table access mutex'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1970
    WaitTable := IdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1971
    WaitTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1972
    WaitTableAccess name: 'JavaVM wait table access mutex'.
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  1973
    EnteredMonitorsPerProcess notNil ifTrue: [
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  1974
        EnteredMonitorsPerProcess 
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  1975
            keysAndValuesDo: [:p :value | value size > 0 ifTrue: [ self breakPoint: #mh ] ]
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  1976
    ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1977
    self releaseLeftOverMonitors.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1978
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1979
        log: 'Clearing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1980
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1981
        facility: #JVM.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1982
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1983
    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1984
    log: 'Clearing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1985
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1986
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1987
        EnteredMonitorsPerProcess := IdentityDictionary new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1989
    "
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1990
     JavaVM releaseAllMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1991
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1992
    "Created: / 02-01-1998 / 18:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1993
    "Modified: / 07-01-1998 / 22:58:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1994
    "Modified: / 25-10-2010 / 19:14:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1995
    "Modified: / 17-11-2011 / 17:00:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1996
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1997
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1998
releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1999
    OpenFileTable notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2000
	OpenFileTable do:[:aStream |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2001
	    aStream notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2002
		aStream ~~ Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2003
		    aStream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2004
			aStream ~~ Stderr ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2005
			    aStream ~~ JavaConsoleStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2006
				aStream isExternalStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2007
				    aStream shutDown
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2008
				]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2009
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2010
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2011
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2012
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2013
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2014
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2015
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2016
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2018
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2019
     JavaVM releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2020
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2022
    "Created: / 7.1.1998 / 22:57:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2023
    "Modified: / 4.2.1998 / 19:53:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2024
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2026
releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2027
    KnownWindows notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2028
	KnownWindows do:[:aView |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2029
	    aView destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2030
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2031
	KnownWindows := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2032
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2034
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2035
     self releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2036
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2038
    "Created: / 7.1.1998 / 22:58:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2039
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2040
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2041
releaseLeftOverMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2042
    "release monitors held by dead processes"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2043
    
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2044
    | deadProcesses |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2045
    deadProcesses := IdentitySet new.
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2046
    EnteredMonitorsPerProcess notNil ifTrue: [
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2047
        EnteredMonitorsPerProcess keysAndValuesDo: [
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2048
            :p :monitors | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2049
            p isDead ifTrue: [
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2050
 
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2051
                monitors do: [
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2052
                    :mon | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2053
                    Logger 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2054
                        log: 'release leftover monitor ...'
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2055
                        severity: #info
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2056
                        facility: 'JVM'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2057
                    mon release
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2058
                ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2059
                deadProcesses add: p.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2060
            ]
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2061
        ].
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2062
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2063
    deadProcesses do: [:p | EnteredMonitorsPerProcess removeKey: p ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2064
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2065
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2066
     JavaVM releaseLeftOverMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2067
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2068
    "Created: / 08-01-1998 / 17:29:26 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2069
    "Modified: / 14-09-2011 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2070
    "Modified: / 29-11-2011 / 14:26:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2071
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2073
systemProperties
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2074
    |props|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2076
    props := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2077
    self initializeSystemPropertiesInto:props.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2078
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2080
    "Created: / 3.1.1998 / 14:25:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2081
    "Modified: / 3.1.1998 / 14:32:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2082
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2084
terminateAllThreads
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2085
    Java terminateAllThreads.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2086
    JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2087
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2089
    "Created: / 8.1.1998 / 17:43:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2090
    "Modified: / 24.12.1999 / 02:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2091
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2093
update:something with:aParameter from:changedObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2094
    something == #returnFromSnapshot ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2095
"/         self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2096
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2098
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2099
     JavaVM initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2100
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2101
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2102
    "Created: / 9.1.1998 / 10:30:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2103
    "Modified: / 6.11.1998 / 00:40:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2104
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2106
!JavaVM class methodsFor:'Signal constants'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2108
badMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2109
    ^ BadMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2111
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2112
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2114
callHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2115
    ^ CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2117
    "Created: / 2.1.1998 / 18:07:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2118
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2119
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2120
classLoaderQuerySignal
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2121
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2122
    <resource: #obsolete>
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2123
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2124
    self breakPoint: #jv.
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2125
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2126
    ^JavaClassReader classLoaderQuerySignal
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2127
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2128
    "Modified: / 28-10-2011 / 22:11:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2129
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2130
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2131
internalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2132
    ^ InternalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2134
    "Created: / 2.1.1998 / 18:07:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2135
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2137
javaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2138
    "^ JavaExceptionSignal"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2139
    ^JavaError
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2141
    "Created: / 02-01-1998 / 18:05:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2142
    "Modified: / 01-03-2011 / 21:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2143
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2144
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2145
privilegedAccessQuery
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2146
    ^ JavaPrivilegedAccessQuery.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2147
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2148
    "Created: / 09-10-2011 / 20:24:49 / Marcel Hlopko <hlopik@gmail.com>"
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2149
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2150
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2151
stdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2152
    ^ StdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2154
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2155
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2156
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2157
unhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2158
    ^ UnhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2160
    "Created: / 2.1.1998 / 18:05:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2161
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2162
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2163
unimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2164
    ^ UnimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2166
    "Created: / 2.1.1998 / 18:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2167
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2169
unimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2170
    ^ UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2172
    "Created: / 2.1.1998 / 18:06:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2173
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2175
!JavaVM class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2176
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2177
addClass:aJavaClass definedBy:aJavaClassLoader 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2178
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2179
    self assert: aJavaClass classLoader == aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2180
    ^ ClassRegistry registerClass:aJavaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2181
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2182
    "Modified: / 23-10-2011 / 11:58:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2183
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2184
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2185
addSelector:newSelector withMethod:newMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2186
    super addSelector:newSelector withMethod:newMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2187
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2188
    "/JavaNativeMethod may not be loaded..."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2189
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2190
    (Smalltalk at:#JavaNativeMethod) 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2191
        ifNotNil:[JavaNativeMethod flushAllCachedNativeMethods].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2193
    "Created: / 24-12-1999 / 03:12:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2194
    "Modified: / 02-02-2011 / 04:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2195
    "Modified: / 02-02-2011 / 23:38:08 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2196
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2198
assertionsEnabled: aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2200
    AssertionsEnabled := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2202
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2203
        JavaVM assertionsEnabled: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2204
        JavaVM assertionsEnabled: false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2205
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2207
    "Created: / 24-11-2010 / 09:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2208
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2209
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2210
classRegistry
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2211
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2212
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2213
    "Created: / 21-10-2011 / 11:12:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2214
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2215
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2216
extClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2217
    ^ self systemClassLoader instVarNamed:#'parent'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2218
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2219
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2220
    "Created: / 02-11-2011 / 13:20:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2221
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2222
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2223
finalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2224
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2225
    ^FinalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2226
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2227
    "Created: / 14-11-2011 / 21:14:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2228
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2229
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2230
finalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2231
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2232
    ^FinalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2233
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2234
    "Created: / 14-11-2011 / 12:29:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2235
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2236
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2237
javaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2238
     ^ JavaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2240
    "Created: / 24.12.1999 / 02:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2241
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2243
javaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2244
     ^ JavaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2246
    "Created: / 8.1.1999 / 17:05:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2247
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2249
javaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2250
     ^ JavaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2251
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2252
    "Created: / 8.1.1999 / 17:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2253
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2255
reflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2256
    ^ Reflection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2258
    "Created: / 28-01-2011 / 15:09:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2259
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2260
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2261
registry
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2262
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2263
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2264
    "Modified (format): / 21-10-2011 / 11:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2265
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2266
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2267
systemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2268
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2269
    ^SystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2270
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2271
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2272
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2273
1185
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2274
threadInterrupts
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2275
threadInterrupts isNil ifTrue: [threadInterrupts := WeakIdentityDictionary new].
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2276
^threadInterrupts.
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2277
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2278
    "Created: / 30-11-2011 / 11:44:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2279
!
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2280
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2281
useSmalltalkInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2283
    JavaMethod makeMetaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2285
    "Created: / 23-02-2011 / 12:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2286
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2288
useVMInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2290
    JavaMethod makeJavaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2292
    "Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2293
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2294
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2295
!JavaVM class methodsFor:'class access'!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2296
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2297
at: aString 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2298
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2299
    ^ ClassRegistry classNamed: aString asInternalJavaClassName.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2300
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2301
    "Modified (comment): / 21-10-2011 / 12:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2302
    "Modified: / 23-10-2011 / 12:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2303
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2304
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2305
at: aString put: aJavaClass 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2306
    self breakPoint: #mh.
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2307
    self breakPoint: #jv.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2308
    "dont use me anymore"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2309
    ^ ClassRegistry registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2310
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2311
    "Modified (comment): / 21-10-2011 / 12:14:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2312
    "Modified: / 23-10-2011 / 11:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2313
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2314
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2315
classForName: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2316
    "load class from registry - load using classLoader from query or JavaClassReader if absent"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2317
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2318
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2319
    ^ self classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2320
        definedBy: (JavaClassReader classLoaderQuerySignal query) "? SystemClassLoader".
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2321
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  2322
    "Modified: / 30-10-2011 / 17:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2323
    "Modified: / 02-11-2011 / 16:33:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2324
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2325
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2326
classForName: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2327
    "load class from registry - load using given classLoader if not nil"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2328
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2329
    | result |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2330
    result := self 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2331
                classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2332
                definedBy: classLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2333
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2334
                    | class  classLoaderEnsured |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2335
                    self assert: (className includes: $.) not.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2336
                    self booted ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2337
                        "class loaders allowed after vm boot, until then, only primordial"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2338
                        class := self usePrimordialCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2339
                        self assert: (class notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2340
                            description: 'Couldnt load class ' , className , ' while booting Java VM'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2341
                        class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2342
                    ] ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2343
                        self assert: (self booted)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2344
                            description: 'Java VM is not booted and we are not using primordial class loader to load: ' 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2345
                                    , className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2346
                        (Java release bootClassPathIncludesClassNamed: className) ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2347
                            "we will use primordial class loader for classes in rt.jar etc"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2348
                            class := self usePrimordialCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2349
                            self assert: (class notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2350
                                description: 'Class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2351
                                        , ' is supposed to be in boot classpath, but we couldnt load it'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2352
                            class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2353
                        ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2354
                            (Java release extDirsIncludesClassNamed: className) ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2355
                                class := self useExtCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2356
                                self assert: (class notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2357
                                    description: 'Class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2358
                                            , ' is supposed to be in java.ext,dirs, but we couldnt load it'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2359
                                class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2360
                            ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2361
                                "at this point, nil classLoader means use system class loader,
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2362
                                 in other words, at this point, we shouldnt use primordial cl at all"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2363
                                classLoader isNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2364
                                    self assert: (self systemClassLoader notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2365
                                        description: 'We needed system class loader, but its not loaded yet'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2366
                                    classLoaderEnsured := self systemClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2367
                                ] ifFalse: [ classLoaderEnsured := classLoader ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2368
                                class := self useUserDefinedCL: classLoaderEnsured
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2369
                                            toLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2370
                                class isNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2371
                                    Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2372
                                        log: 'Even ' , classLoader printString , ' was not able to load class ' 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2373
                                                , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2374
                                        severity: #warn
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2375
                                        facility: 'JVM'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2376
                                    nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2377
                                ] ifFalse: [ class ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2378
                            ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2379
                        ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2380
                    ]
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2381
                ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2382
    result isNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2383
        Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2384
            log: 'Class ' , className , ' couldnt be loaded'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2385
            severity: #warn
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2386
            facility: 'JVM'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2387
    ] ifFalse: [ result := self makeArrayOf: result asDescribedBy: className. ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2388
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2389
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2390
    "Created: / 21-10-2011 / 12:01:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2391
    "Modified: / 30-10-2011 / 13:54:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2392
    "Modified: / 02-11-2011 / 16:49:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2393
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2394
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2395
classForName: className definedBy: classLoader ifAbsentPut: aBlock 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2396
    "load class from registry - if absent evaluate given block to get loaded class"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2397
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2398
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2399
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2400
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2401
    ].
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2402
    result := ClassRegistry 
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2403
                classForName: className asSlashedJavaClassName
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2404
                loader: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2405
                ifAbsentPut: aBlock.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2406
    result notNil ifTrue: [
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2407
        result := self makeArrayOf: result asDescribedBy: className.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2408
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2409
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2410
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2411
    "Created: / 21-10-2011 / 12:13:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2412
    "Modified: / 30-10-2011 / 22:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2413
    "Modified (format): / 02-11-2011 / 16:09:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2414
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2415
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2416
classNamed: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2417
    "Return class with given name loaded by current classloader or nil if class is not yet loaded"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2418
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2419
    ^ self classNamed: className definedBy: JavaClassReader classLoaderQuerySignal query.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2420
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2421
    "Modified: / 21-10-2011 / 12:09:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2422
    "Modified (comment): / 21-10-2011 / 13:34:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2423
    "Modified: / 28-10-2011 / 22:12:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2424
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2425
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2426
classNamed: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2427
    "Return class with given name loaded by given classloader or nil if class is not yet loaded"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2428
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2429
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2430
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2431
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2432
    ].
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2433
    result := ClassRegistry 
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2434
                classForName: className asSlashedJavaClassName
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2435
                loader: classLoader
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2436
                ifAbsent: [ ^ nil ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2437
    ^ self makeArrayOf: result asDescribedBy: className.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2438
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2439
    "Created: / 21-10-2011 / 11:58:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2440
    "Modified: / 23-10-2011 / 12:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2441
    "Modified: / 01-11-2011 / 15:36:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2442
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2443
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2444
loadClassesIn: directory 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2445
"load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2446
The argument is string containing the name of the directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2447
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2448
Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2449
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2450
^ self loadClassesIn: directory matching: '*'.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2451
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2452
    "Modified: / 11-06-2011 / 13:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2453
    "Created: / 21-10-2011 / 12:40:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2454
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2455
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2456
loadClassesIn: directory matching: pattern 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2457
    "load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2458
     The arguments are a string containing the name of the directory
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2459
     and a class name pattern. Only classes matching the pattern are loaded.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2460
     class names are matched using String>>matches:.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2461
     ALL CLASSES ARE INSTALLED!!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2462
     Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2463
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2464
    | dir  dirString  className  loadedClasses |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2465
    dir := directory asFilename asAbsoluteFilename.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2466
    loadedClasses := Set new.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2467
    Java addToClassPath: dir pathName.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2468
    JavaClassReader classLoaderQuerySignal answer: SystemClassLoader do:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2469
    
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2470
    dir 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2471
        recursiveDirectoryContentsAsFilenamesDo: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2472
            :filename | 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2473
            (filename isRegularFile and: [ filename suffix = #class ]) ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2474
                dirString := dir pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2475
                className := filename withoutSuffix pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2476
                className := className subString: dirString size + 2 to: className size.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2477
                className := className copyReplaceAll: (Filename separator) with: $..
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2478
                (className matches: pattern) ifTrue: [
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2479
                    (self classNamed: className) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2480
                        loadedClasses add: (self classForName:className).
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2481
                    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2482
                ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2483
            ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2484
        ].
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2485
    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2486
    ^ loadedClasses.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2487
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2488
    "Modified: / 21-10-2011 / 12:52:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2489
    "Modified: / 30-10-2011 / 14:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2490
! !
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2491
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2492
!JavaVM class methodsFor:'class loading'!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2493
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2494
useExtCLToLoadClassNamed: className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2495
    | ecl  class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2496
    ecl := self extClassLoader.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2497
    self assert: (ecl notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2498
        description: 'we want to use ExtClassLoader, but its not loaded yet'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2499
    class := ecl 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2500
                perform: #'loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2501
                with: (Java as_String: (className asDottedJavaClassName)).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2502
    self assert: (class notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2503
        description: 'we tried to load class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2504
                , ' using ExtClassLoader and we failed:)'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2505
                class := JavaVM classForJavaClassObject: class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2506
                class classLoader: ecl.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2507
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2508
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2509
    "Created: / 02-11-2011 / 13:48:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2510
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2511
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2512
usePrimordialCLToLoadClassNamed: className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2513
    | class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2514
    JavaClassReader classLoaderQuerySignal answer: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2515
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2516
            class := JavaClassReader readClass: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2517
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2518
    ^ class
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2519
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2520
    "Modified: / 02-11-2011 / 17:28:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2521
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2522
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2523
useUserDefinedCL: classLoader toLoadClassNamed: className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2524
    | classObject  class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2525
    classObject := classLoader 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2526
                perform: #'loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2527
                with: (Java as_String: (className asDottedJavaClassName)).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2528
    class := self classForJavaClassObject: classObject.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2529
    class classLoader ifNil: [self breakPoint:#mh].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2530
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2531
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2532
    "Created: / 02-11-2011 / 16:20:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2533
! !
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2534
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2535
!JavaVM class methodsFor:'debugging support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2536
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2537
disableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2538
    MonitorTrace := false.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2539
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2540
    "Created: / 22-11-2011 / 10:29:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2541
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2542
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2543
enableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2544
MonitorTrace := true.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2545
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2546
    "Created: / 22-11-2011 / 10:29:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2547
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2548
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2549
exceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2550
    ^ ExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2552
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2553
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2555
exceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2556
    ExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2558
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2559
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2561
exceptionDebugPatterns
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2563
    ^ ExceptionDebugPatterns
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2564
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2565
    ExceptionDebug must be set in order to ExceptionDebugPatterns work
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2566
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2567
    ExceptionDebug := true.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  2568
    ExceptionDebugPatterns add: 'java/lang/SecurityException*'
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  2569
    ExceptionDebugPatterns add: 'java/net/ConnectException*'
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  2570
    ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  2571
    ExceptionDebugPatterns add: 'java/lang/ClassNotFoundException'
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  2572
    ExceptionDebugPatterns add: 'java/io/IOException'
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  2573
    ExceptionDebugPatterns add: 'java/lang/NoSuchMethodException'
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2574
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2576
    "Created: / 25-02-2011 / 08:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2577
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2579
!JavaVM class methodsFor:'defaults'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2580
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2581
audioEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2582
    ^ NoAudio not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2584
    "Created: / 18.7.1998 / 22:31:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2585
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2587
audioEnabled:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2588
    NoAudio := aBoolean not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2589
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2590
    "Created: / 18.7.1998 / 22:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2591
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2593
defaultCLASSPATH
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2594
    |s|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2596
    s := '' writeStream.
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2597
    Java classPath 
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2598
        do:[:p | s nextPutAll:p ]
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2599
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2601
    ^ s contents
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2603
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2604
     self defaultCLASSPATH      
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2605
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2606
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2607
    "Created: / 03-01-1998 / 14:27:21 / cg"
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2608
    "Modified: / 30-10-2011 / 21:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2609
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2610
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2611
defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2612
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2613
    ^String streamContents:[:s|
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2614
        Java javaExtDirs do:[:dir|
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2615
            s nextPutAll: dir pathName.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2616
        ] separatedBy:[
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2617
            s nextPut: OperatingSystem pathSeparator.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2618
        ]
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2619
    ]
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2620
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2621
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2622
    JavaVM defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2623
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2624
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2625
    "Created: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2626
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2627
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2628
defaultHotJavaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2629
    ^ '/usr/local/java/hotjava'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2630
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2631
    "Modified: / 5.8.1997 / 04:13:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2632
    "Created: / 3.1.1998 / 14:27:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2633
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2635
defaultJAVAHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2636
    ^ Java javaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2638
    "Modified: / 6.8.1997 / 00:54:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2639
    "Created: / 3.1.1998 / 14:27:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2640
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2642
defaultJWSHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2643
    '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS' asFilename exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2644
	^ '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2645
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2646
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2647
    ^ '/usr/local/java/JWS'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2649
    "Created: / 3.1.1998 / 14:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2650
    "Modified: / 3.12.1998 / 14:54:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2651
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2653
defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2655
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2656
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2657
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2658
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2659
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2660
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2661
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2662
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2663
            add: Java release javaHome asFilename / 'jre' / 'bin' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2664
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2665
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2666
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2667
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2668
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2670
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2671
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2672
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2673
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2674
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2676
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2677
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2678
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2680
    "Created: / 10-12-2010 / 14:09:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2681
    "Modified: / 01-04-2011 / 18:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2682
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2684
defaultSunBootLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2686
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2687
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2688
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2689
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2690
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2691
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2692
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2693
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2694
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2695
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2696
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2697
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2698
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2699
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2701
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2702
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2703
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2704
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2705
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2706
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2707
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2708
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2709
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2711
    "Created: / 10-12-2010 / 14:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2712
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2713
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2714
defaultWindowingToolKit
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2715
    "/ prefer the windows toolkit ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2716
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2717
    (self classForName: 'sun.awt.windows.WToolkit') notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2718
        ^ 'sun.awt.windows.WToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2719
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2720
    (Java classForName: 'sun.awt.motif.MToolkit') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2721
        self halt: 'MotifToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2722
        ^ 'sun.awt.motif.MToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2723
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2724
    self halt: 'TinyToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2725
    ^ 'sun.awt.tiny.TinyToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2726
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2727
    "/    ^ 'sun.awt.win32.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2728
    "/    ^ 'sun.awt.motif.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2729
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2730
     self defaultWindowingToolKit"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2731
    "Created: / 3.1.1998 / 14:27:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2732
    "Modified: / 27.1.1998 / 21:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2733
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2734
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2735
fileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2736
    ^ FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2738
    "Created: / 27.1.1999 / 18:55:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2739
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2741
fileAccessTrace:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2742
    FileAccessTrace := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2744
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2745
    "Modified: / 27.1.1999 / 18:55:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2746
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2748
fileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2749
    ^ FileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2751
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2754
fileOpenConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2755
    FileOpenConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2757
    "Created: / 19.10.1998 / 16:01:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2758
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2760
javaConsole:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2761
    JavaConsoleStream := aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2763
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2764
     JavaVM javaConsole:Transcript
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2765
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2766
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2767
    "Modified: / 6.8.1997 / 00:34:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2768
    "Created: / 3.1.1998 / 14:27:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2769
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2771
javaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2772
    ^ JavaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2773
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2774
    "Created: / 3.1.1998 / 14:32:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2775
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2777
nullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2778
    ^ NullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2780
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2781
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2783
nullPointerExceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2784
    NullPointerExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2786
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2787
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2789
socketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2790
    ^ SocketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2792
    "Created: / 19.10.1998 / 16:02:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2793
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2795
socketConnectConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2796
    SocketConnectConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2798
    "Created: / 19.10.1998 / 16:02:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2799
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2800
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2801
!JavaVM class methodsFor:'eager resolving'!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2802
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2803
disableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2804
    EagerResolvingEnabled := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2805
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2806
    "Created: / 08-12-2011 / 21:06:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2807
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2808
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2809
eagerResolvingEnabled
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2810
    ^ EagerResolvingEnabled.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2811
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2812
    "Created: / 08-12-2011 / 21:05:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2813
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2814
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2815
enableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2816
     EagerResolvingEnabled := true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2817
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2818
    "Created: / 08-12-2011 / 21:06:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2819
! !
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2820
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2821
!JavaVM class methodsFor:'fileIO'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2823
addOpenFile:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2824
    OpenFileTable add:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2825
    ^ OpenFileTable size - 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2826
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2827
    "Created: / 2.1.1998 / 18:32:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2828
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2830
getOpenFileAt:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2831
    ^ OpenFileTable at:idx+1 ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2833
    "Created: / 2.1.1998 / 18:28:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2834
    "Modified: / 2.1.1998 / 18:33:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2835
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2837
setOpenFile:aStream at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2838
    OpenFileTable size < (idx+1) ifTrue:[
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2839
        OpenFileTable grow:idx+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2840
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2841
    OpenFileTable at:idx+1 put:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2842
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2843
"/    Do not shrink OpenFileTable now, make debugging easier
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2844
"/    aStream isNil ifTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2845
"/        [ OpenFileTable last isNil ] whileTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2846
"/            OpenFileTable removeLast.            
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2847
"/        ]
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2848
"/    ].
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2849
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2850
    "Modified: / 02-01-1998 / 18:33:21 / cg"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2851
    "Modified: / 14-11-2011 / 19:53:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2852
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2854
!JavaVM class methodsFor:'helpers'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2855
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2856
canCast: s to: t 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2857
    "Helper for _CHECKCAST:_:"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2858
    
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2859
    | sc  tc |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2860
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2861
    "Not specified in JVM spec, sigh"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2862
    s isJavaPrimitiveType ifTrue: [
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  2863
        "FIXME"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2864
        ^ s == t
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2865
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2866
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2867
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2868
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2869
     The following rules are used to determine whether an objectref that is not
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2870
     null can be cast to the resolved type: if S is the class of the object
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2871
     referred to by objectref and T is the resolved class, array, or interface type,
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2872
     checkcast determines whether objectref can be cast to type T as follows:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2873
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2874
     - If S is an ordinary (nonarray) class, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2875
     - If T is a class type, then S must be the same class as T, or a subclass
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2876
     of T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2877
     - If T is an interface type, then S must implement interface T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2878
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2879
    (s isJavaArrayClass not and: [ s isInterface not ]) ifTrue: [
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2880
        ^ (s includesBehavior: t).
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2881
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2882
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2883
     - If S is an interface type, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2884
     - If T is a class type, then T must be Object.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2885
     - If T is an interface type, then T must be the same interface as S or a
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2886
     superinterface of S.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2887
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2888
    s isInterface ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2889
        ^ t isInterface not 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2890
            ifTrue: [ t == (self classForName: 'java.lang.Object') ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2891
            ifFalse: [ s includesBehavior: t ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2892
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2893
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2894
     - If S is a class representing the array type SC[], that is, an array of com-
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2895
     ponents of type SC , then:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2896
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2897
    self assert: s isJavaArrayClass description: 'S should be array type'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2898
    sc := s javaComponentClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2899
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2900
     - If T is a class type, then T must be Object.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2901
    "
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2902
    t isJavaClassType ifTrue: [ ^ (sc == t) or: [t == (self classForName: 'java.lang.Object') ]].
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2903
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2904
     - If T is an array type TC[], that is, an array of components of type TC ,
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2905
     then one of the following must be true:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2906
     - TC and SC are the same primitive type.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2907
     - TC and SC are reference types, and type SC can be cast to TC by
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2908
     recursive application of these rules.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2909
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2910
    t isJavaArrayClass ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2911
        tc := t javaComponentClass.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2912
        ^ tc isJavaPrimitiveType 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2913
            ifTrue: [ tc == sc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2914
            ifFalse: [ self canCast: sc to: tc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2915
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2916
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2917
     - If T is an interface type, T must be one of the interfaces implemented
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2918
     by arrays (JLS3 4.10.3).
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2919
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2920
    ((t name == #'java/lang/Cloneable') 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2921
        or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2922
    ^ false
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2924
    "Modified: / 09-01-1999 / 00:45:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2925
    "Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
915
vranyj1
parents: 914
diff changeset
  2926
    "Modified: / 14-08-2011 / 23:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2927
    "Modified: / 21-10-2011 / 13:50:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2928
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2929
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2930
invoke: method receiver: obj arguments: args
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2931
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2932
    "Common helper for invoking methods and ctors. Performs
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2933
     (type) checks and unboxing. Return (possibly boxed) return value."
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2934
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2935
    | descriptor adescriptors bargs bargss retval retcls bi |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2936
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2937
    (obj isNil and:[method isStatic not]) ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2938
        self throwNullPointerException.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2939
        ^nil.            
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2940
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2941
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2942
    descriptor := method descriptor.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2943
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2944
    "Possibly box/unbox arguments"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2945
    args notEmptyOrNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2946
        adescriptors := descriptor parameters.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2947
        bargs := Array new: (bargss := method numArgs).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2948
        bi := 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2949
        1 to: args size do:[:i|
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2950
            | cls |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2951
            bi > bargss ifTrue:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2952
                self breakPoint: #jv.
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2953
                self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2954
                                  withMessage: 'passed more arguments than expected'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2955
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2956
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2957
            cls := (adescriptors at: i) javaClass.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2958
            cls isJavaPrimitiveType ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2959
                bargs at: bi put: (cls javaUnbox: (args at:i) onError:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2960
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2961
                    self throwIllegalArgumentException:'illegal unbox'. ^nil
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2962
                ]).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2963
                (cls == LargeInteger or:[cls == Float]) ifTrue:[bi := bi + 1].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2964
            ] ifFalse:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2965
                ((args at:i) isNil or:[(self canCast: (args at:i) class to: cls)]) ifFalse:[
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2966
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2967
                    self throwIllegalArgumentException:'incomplatible argument types'. ^nil.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2968
                ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2969
                bargs at: bi put: (args at:i).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2970
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2971
            bi := bi + 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2972
       ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2973
        bi <= bargss ifTrue:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  2974
             self breakPoint: #jv.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  2975
             self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2976
                              withMessage: 'not enough arguments'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2977
        ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2978
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2979
        bargs := #()
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2980
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2981
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2982
    "Fire the method"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2983
    method isStatic ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2984
        retval := method valueWithReceiver: method javaClass arguments: bargs.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2985
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2986
        retval := obj perform: method selector withArguments: bargs.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2987
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2988
    retcls := descriptor return.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2989
    retcls notNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2990
        retval := retcls javaClass javaBox: retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2991
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2992
    ^retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2993
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2994
    "Created: / 01-12-2011 / 23:20:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2995
!
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  2996
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2997
javaArrayClassFor:aClass 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2998
    ^ self reflection javaArrayClassObjectForClass:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2999
        ifAbsentPut:[JavaArray javaArrayClassFor:aClass]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3000
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3001
    "Created: / 17-12-2010 / 13:46:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3002
    "Modified: / 28-01-2011 / 14:59:16 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3003
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3004
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3005
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3006
    self breakPoint:#mh info:'refactor my sender to use reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3007
    ^ self reflection javaStringObjectForString:string interned:false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3009
    "Created: / 22-11-2010 / 16:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3010
    "Modified: / 09-02-2011 / 00:47:49 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3011
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3013
javaStringObjectForString:string interned:intern 
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  3014
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3015
    ^self reflection javaStringObjectForString:string interned:intern.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3017
    "Created: / 22-11-2010 / 16:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3018
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3019
    "Modified: / 09-02-2011 / 01:04:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3020
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3022
javaThreadForSTProcess:stProcess
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3023
    |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3025
    t := Java threads keyAtValue:stProcess ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3026
    t == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3027
	^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3028
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3029
    ^ t
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3030
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3031
    "Modified: / 26.8.1997 / 19:56:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3032
    "Created: / 3.1.1998 / 01:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3034
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3035
makeArrayOf: loadedJavaClass asDescribedBy: className 
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3036
    | arrayClass  dimensions |
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3037
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3038
    arrayClass := loadedJavaClass.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3039
    dimensions := className occurrencesOf: $[.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3040
        arrayClass isJavaArrayClass ifTrue: [
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3041
        "is already array (primitive arrays case, like ByteArray etc)"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3042
        dimensions := dimensions - 1.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3043
    ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3044
    dimensions timesRepeat: [ arrayClass := arrayClass javaArrayClass. ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3045
        ^ arrayClass.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3046
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3047
    "Created: / 21-10-2011 / 12:18:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3048
    "Modified (format): / 23-10-2011 / 22:30:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3049
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3050
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3051
newThread: name 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3052
    | thread  threadClass  i |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3053
    threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3054
    thread := threadClass basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3055
    thread instVarNamed: 'name' put: (Java as_String: name).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3056
    thread instVarNamed: 'priority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3057
        put: (threadClass instVarNamed: 'NORM_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3058
    thread instVarNamed: 'single_step' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3059
    thread instVarNamed: 'daemon' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3060
    thread instVarNamed: 'stillborn' put: 0.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3061
    thread instVarNamed: 'threadStatus' put: 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3062
    thread instVarNamed: 'target' put: nil.
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3063
    thread instVarNamed: 'blockerLock'
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3064
        put: (JavaVM classForName: 'java.lang.Object') basicNew.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3065
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3066
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3067
    "/ that on was only temporarily present in JDK1.1.3 (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3068
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3069
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3070
    (i := thread class instVarOffsetOf: 'initial_stack_memory') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3071
        thread instVarAt: i put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3072
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3073
    thread instVarNamed: 'group' put: (self standardThreadGroup).
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3074
    threadClass classLoader isNil ifTrue: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3075
        thread instVarNamed: 'contextClassLoader' put: self systemClassLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3076
    ] ifFalse: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3077
        thread instVarNamed: 'contextClassLoader' put: threadClass classLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3078
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3079
    ^ thread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3080
1151
vranyj1
parents: 1150
diff changeset
  3081
    "Created: / 03-01-1998 / 01:47:30 / cg"
vranyj1
parents: 1150
diff changeset
  3082
    "Modified: / 27-01-1998 / 00:54:33 / cg"
vranyj1
parents: 1150
diff changeset
  3083
    "Modified: / 21-11-2011 / 09:48:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3084
    "Modified: / 01-12-2011 / 17:43:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3085
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3086
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3087
stProcessForJavaThread: jThread 
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3088
    | p |
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3089
    p := Java threads at: jThread ifAbsent: nil.
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3090
    p == 0 ifTrue: [ ^ nil ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3091
    ^ p
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3092
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3093
    "Created: / 02-01-1998 / 21:48:27 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3094
    "Modified: / 03-01-1998 / 01:53:55 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3095
    "Modified: / 01-12-2011 / 18:27:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3096
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3098
standardThreadGroup
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3099
    | standardGroup  threadClass |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3100
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3101
    StandardThreadGroup isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3102
        threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3103
        standardGroup := (self classForName: 'java.lang.ThreadGroup') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3104
        standardGroup instVarNamed: 'parent' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3105
        standardGroup instVarNamed: 'name' put: (Java as_String: 'main').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3106
        standardGroup instVarNamed: 'maxPriority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3107
            put: (threadClass instVarNamed: 'MAX_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3108
        standardGroup instVarNamed: 'destroyed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3109
        standardGroup instVarNamed: 'daemon' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3110
        (standardGroup class instVarOffsetOf: 'vmAllowSuspension') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3111
            standardGroup instVarNamed: 'vmAllowSuspension' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3112
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3113
        standardGroup instVarNamed: 'nthreads' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3114
        standardGroup instVarNamed: 'ngroups' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3115
        standardGroup instVarNamed: 'groups' put: nil.
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3116
        StandardThreadGroup := standardGroup.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3117
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3118
    ^ StandardThreadGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3119
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3120
    "Created: / 03-01-1998 / 01:41:54 / cg"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3121
    "Modified: / 17-11-1998 / 22:55:30 / cg"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3122
    "Modified: / 25-04-2011 / 20:27:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3123
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3124
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3125
threadStart: nativeContext 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3126
    "start the thread"
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3127
    
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3128
    | jThread  jName  nm  stProcess  helper |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3129
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  3130
    self assert: (jThread instVarNamed: 'priority') > 0.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3131
    stProcess := JavaProcess for: (helper := JavaProcess newHelper)
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3132
                priority: (Processor activePriority).
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3133
    helper javaThreadObject: jThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3134
    helper javaProcess: stProcess.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3135
    jName := jThread instVarNamed: 'name'.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3136
    jName isString ifFalse: [ nm := Java as_ST_String: jName. ] ifTrue: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3137
        nm := jName
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3138
    ].
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3139
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3140
    "/ kludge - remember the ScreenUpdater ...
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3141
    
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3142
    nm = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3143
        nm = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3144
            (nm startsWith: 'AWT-EventQueue') ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3145
                JavaEventQueueThread := stProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3146
            ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3147
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3148
    ].
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3149
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3150
    "/ when that process terminates, wakup any waiters
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3151
    "/mh 29.11.11 this makes join work
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3152
    "/mh 30.11.11 disable wait is to ensure that join can be called on thread after its finished and dont wait forever"
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3153
    
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3154
    stProcess 
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3155
        addExitAction: [
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3156
            Logger 
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3157
                log: ('%1 is going to die, notifying all waiters and disabling waiting on its monitor' 
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3158
                        bindWith: jThread printString)
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3159
                severity: #debug
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3160
                facility: #JVM.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3161
                jThread instVarNamed: 'threadStatus' put: 0.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3162
            (self monitorFor: jThread) disableWait.
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3163
            self acquireMonitorAndNotifyAll: jThread.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3164
        ].
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3165
    stProcess name: 'JAVA-' , nm.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3166
    stProcess restartable: true.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3167
    jThread instVarNamed: 'threadStatus' put: 1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3168
    stProcess resume.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3169
    Java threads at: jThread put: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3170
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3172
    "Modified: / 24-12-1999 / 03:14:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3173
    "Created: / 14-12-2010 / 21:31:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3174
    "Modified: / 15-12-2010 / 11:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3175
    "Modified: / 01-12-2011 / 17:44:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3176
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3178
!JavaVM class methodsFor:'helpers - awt'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3179
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3180
commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3181
    |view x y width height ext menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3183
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3185
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3186
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3187
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3188
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3189
    ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3191
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3192
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3193
"/    ' extent: ' print. ext printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3194
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3195
	view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3196
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3197
	(view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3198
	or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3199
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3200
	    "/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3201
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3202
	    menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3203
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3204
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3205
		height := height + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3206
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3207
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3209
	    "/ to prevent a view from not being visible/closable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3210
	    "/ in case Java goes mad ..
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3212
	    (width < 30
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3213
	    or:[height < 10]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3214
		"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3215
		width := 30.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3216
		height := 20.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3217
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3218
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3219
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3220
	    view extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3221
	    (view isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3222
		view preferredExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3223
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3224
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3225
	    "/ adjust non-resizable views min/max
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3227
	    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3228
		view minExtent notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3229
		    view minExtent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3230
		    view maxExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3231
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3232
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3233
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3234
	    (view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3235
	    and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3236
		menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3237
		menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3238
		    "/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3239
		    y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3240
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3241
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3242
		"/ post a configuration event
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3243
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3244
		    'JAVA: configure: need event' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3245
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3246
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3247
	    (x isNil or:[y isNil]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3248
		Transcript showCR:'bad args to reshape'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3249
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3250
		view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3251
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3252
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3253
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3255
    view isJavaView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3256
	view invalidate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3257
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3259
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3261
    "Created: / 4.1.1998 / 18:00:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3262
    "Modified: / 5.12.1998 / 13:34:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3265
createdWindowsView:aView for:aJavaPeer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3266
    "this is only sent with the sun.awt.windows toolkit"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3268
    aJavaPeer instVarNamed:'pData' put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3270
    JavaWindowGroup isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3271
	JavaWindowGroup := WindowGroup new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3272
	JavaWindowGroup isForModalSubview:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3273
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3274
    aView windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3275
    JavaWindowGroup addView:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3277
    KnownWindows isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3278
	KnownWindows := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3279
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3280
    KnownWindows at:aJavaPeer put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3282
    FirstWindowCreationSemaphore signalIf.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3284
"/'*** ' print. aJavaPeer print. ' -> ' print. aView printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3285
"/(aView isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3286
"/    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3287
"/].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3289
    "Created: / 4.1.1998 / 17:57:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3290
    "Modified: / 28.1.1998 / 22:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3291
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3293
gcForWGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3294
    |jGraphics gc orgX orgY trans tX tY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3296
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3297
    O_WGgraphics_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3298
	O_WGgraphics_pData := (jGraphics class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3299
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3300
    O_WGgraphics_originX isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3301
	O_WGgraphics_originX := (jGraphics class instVarOffsetOf:'originX').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3302
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3303
    O_WGgraphics_originY isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3304
	O_WGgraphics_originY := (jGraphics class instVarOffsetOf:'originY').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3305
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3306
    gc := jGraphics instVarAt:O_WGgraphics_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3308
    trans := gc translation.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3309
    tX := trans x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3310
    tY := trans y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3311
"/    tX := gc translationX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3312
"/    tY := gc translationY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3314
    orgX := jGraphics instVarAt:O_WGgraphics_originX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3315
    orgY := jGraphics instVarAt:O_WGgraphics_originY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3316
    ((orgX ~~ tX) or:[orgY ~~ tY]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3317
	gc translation:orgX@orgY
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3318
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3319
    ^ gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3321
    "Created: / 8.1.1998 / 00:16:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3322
    "Modified: / 23.12.1998 / 20:27:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3323
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3325
jPeerForView:aView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3326
    ^ KnownWindows keyAtValue:aView ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3328
    "Created: / 15.1.1998 / 13:48:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3329
    "Modified: / 15.1.1998 / 13:48:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3330
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3332
pReshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3333
    |jFramePeer view x y width height menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3335
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3336
    view := jFramePeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3338
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3339
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3340
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3341
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3343
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3344
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3345
"/    ' extent: ' print. width print. '/' print. height printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3347
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3348
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3349
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3351
    (view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3352
    or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3353
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3354
	"/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3355
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3356
	menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3357
	menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3358
	    "/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3359
	    height := height + menu height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3360
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3361
	view extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3362
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3363
	(view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3364
	and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3365
	    menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3366
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3367
		"/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3368
		y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3369
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3370
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3371
	view origin:x@y extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3372
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3374
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3376
    "Created: / 7.1.1998 / 21:47:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3377
    "Modified: / 5.12.1998 / 13:47:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3380
replacementFontFor:name style:styleNr size:size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3381
    |font family style|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3383
    style := 'roman'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3384
    styleNr = 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3385
        style := 'roman'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3386
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3388
    font := Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3389
    font notNil ifTrue:[^ font].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3391
    name = 'Dialog' ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3392
        family := 'helvetica'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3393
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3394
        family := 'courier'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3395
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3397
    ^ Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3398
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3400
topViewsMenu:view
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3401
    |idx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3403
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3404
	view subViews size > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3405
	    (idx := view subViews findFirst:[:v | v isMemberOf:MenuPanel]) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3406
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3407
		^ view subViews at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3408
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3409
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3410
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3411
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3413
    "Modified: / 4.8.1997 / 01:23:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3414
    "Created: / 4.1.1998 / 18:01:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3415
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3417
viewForWPeer:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3418
    |jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3420
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3421
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3422
    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3423
    O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3424
	O_FramePeer_pNativeWidget := (jPeer class instVarOffsetOf:'pNativeWidget').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3425
	O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3426
	    O_FramePeer_pNativeWidget := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3427
	    O_FramePeer_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3428
		O_FramePeer_pData := (jPeer class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3429
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3430
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3431
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3432
    O_FramePeer_pNativeWidget > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3433
	"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3434
	^ jPeer instVarAt:O_FramePeer_pNativeWidget.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3435
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3436
    ^ jPeer instVarAt:O_FramePeer_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3438
    "Modified: / 19.11.1998 / 01:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3439
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3441
!JavaVM class methodsFor:'helpers - exceptions'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3442
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3443
throwAbstractMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3444
    ^ self throwExceptionClassName: 'java.lang.AbstractMethodError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3445
        withMessage: 'resolving a method ref failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3446
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3447
    "Created: / 11-04-2011 / 20:32:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3448
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3449
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3450
throwArrayIndexOutOfBoundsException: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3451
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3452
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3453
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3454
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3455
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3457
    "Created: / 14.1.1998 / 21:36:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3458
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3459
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3460
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3461
throwArrayIndexOutOfBoundsException: theArray _: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3462
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3463
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3464
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3465
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3466
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3468
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3469
    "Created: / 8.1.1999 / 15:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3470
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3472
throwArrayStoreException:badArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3473
    ^ self
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3474
        throwExceptionClassName:'java.lang.ArrayStoreException'
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3475
         withMessage:('bad array store: ' , badArray class printString)
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3476
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3477
    "Modified: / 23-06-2011 / 09:19:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3480
throwClassCastException
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3481
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
  3482
    
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3483
    ^ self throwExceptionClassName: 'java.lang.ClassCastException'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3484
        withMessage: 'cast failed'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3485
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3486
    "Modified: / 07-01-1998 / 15:25:35 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3487
    "Created: / 08-01-1999 / 18:55:31 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3488
    "Modified (format): / 23-10-2011 / 22:33:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3489
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3490
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3491
throwClassFormatError
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3492
    ^ self throwClassFormatError: 'Invalid class format'
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3493
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3494
    "Created: / 04-01-1998 / 22:26:09 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3495
    "Modified: / 10-11-1998 / 13:20:31 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3496
    "Created: / 08-08-2011 / 17:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3497
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3498
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3499
throwClassFormatError: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3500
    ^ self 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3501
        throwExceptionClassName:'java.lang.ClassFormatError' 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3502
        withMessage: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3503
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3504
    "Created: / 04-01-1998 / 22:26:09 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3505
    "Modified: / 10-11-1998 / 13:20:31 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3506
    "Created: / 27-10-2011 / 16:20:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3507
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3508
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3509
throwClassNotFoundException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3510
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3511
	throwExceptionClassName:'java.lang.ClassNotFoundException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3512
	withMessage:'no such class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3514
    "Created: / 4.1.1998 / 22:25:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3515
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3516
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3517
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3518
throwClassNotFoundException: className 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3519
    ^ self throwExceptionClassName: 'java.lang.ClassNotFoundException'
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3520
        withMessage: 'no such class: ' , className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3522
    "Created: / 4.1.1998 / 22:26:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3523
    "Modified: / 10.11.1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3524
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3526
throwDivisionByZeroException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3527
    DivisionByZeroExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3528
	self halt:'division by zero'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3529
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3530
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3531
	throwExceptionClassName:'java.lang.ArithmeticException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3532
	withMessage:'division by zero'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3533
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3534
    "Created: / 8.1.1999 / 14:28:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3535
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3536
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3537
throwException: aJavaException 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3538
    <resource: #skipInDebuggersWalkBack>
1098
vranyj1
parents: 1097
diff changeset
  3539
    | con  jMsg  msg  exClass  srchCon  handlerContext  handlerPC  method  pc  hPC |
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3540
    ExceptionTrace ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3541
        | tmpMessage |
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3542
        tmpMessage := aJavaException instVarNamed: 'detailMessage'.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3543
        tmpMessage isNil ifTrue: [ tmpMessage := '' ] ifFalse: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3544
            tmpMessage := Java as_ST_String: tmpMessage
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3545
        ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3546
        Logger 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3547
            log: 'JAVA: exception: ' , aJavaException class fullName , ' (' 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3548
                    , tmpMessage , ')'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3549
            severity: #debug
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3550
            facility: 'JVM'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3551
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3552
    ExceptionDebug ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3553
        "/        self internalError:('JAVA: exception: ' , aJavaException class fullName).        
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3554
        (ExceptionDebugPatterns isNilOrEmptyCollection 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3555
            or: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3556
                ExceptionDebugPatterns 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3557
                    anySatisfy: [:pattern | pattern match: aJavaException class fullName ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3558
            ]) 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3559
                ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3560
                    self halt: ('JAVA: exceptionDebug: ' , aJavaException class fullName)
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3561
                ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3562
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3563
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3564
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3565
    "/ search stack for a javaContext which handles that exception
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3566
    "/
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3567
    
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3568
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3569
    srchCon := thisContext sender.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3570
    [ handlerContext isNil and: [ srchCon notNil ] ] whileTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3571
        (srchCon isJavaContext) ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3572
            method := srchCon method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3573
            pc := srchCon pc.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3574
            (hPC := method handlerFor: aJavaException at: pc) notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3575
                "JV@2011-02-25: Another crap in JVM and Java VM Spec?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3576
                 Or theri proxu generator? Assume that if athrow's pc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3577
                 is same as the handler's pc it means rethrow to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3578
                 handling context - so DO NOT HANDLE IT!!"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3579
                "Hack disabled for now"
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3580
                "pc ~~ hPC"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3581
                true ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3582
                    handlerPC := hPC.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3583
                    handlerContext := srchCon
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3584
                ].
1098
vranyj1
parents: 1097
diff changeset
  3585
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3586
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3587
        srchCon := srchCon sender.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3588
    ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3589
    handlerContext isNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3590
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3591
        "/ no JavaHandler ... let smalltalk handle it
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3592
        "/                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3593
        exClass := aJavaException class.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3594
        exClass == (self classNamed: 'java/lang/ThreadDeath') ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3595
            "/mh 1.12.11 uncaught threadDeaths are not delegated out.. Thread.stop javadoc
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3596
            ^ self
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3597
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3598
        msg := 'Java ' , exClass name.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3599
        jMsg := aJavaException instVarNamed: 'detailMessage'.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3600
        jMsg notNil ifTrue: [ msg := msg , ': ' , (Java as_ST_String: jMsg). ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3601
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3602
        "/ for our convenience: skip ST contexts 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3603
        "/ (i.e. the handler or debugger will see the javaContext first )
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3604
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3605
        con := thisContext sender.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3606
        [ con isNil or: [ con isJavaContext ] ] whileFalse: [ con := con sender ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3607
        con isNil ifTrue: [ con := thisContext sender ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3608
        JavaUnhandledExceptionError 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3609
            raiseWith: aJavaException
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3610
            errorString: msg
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3611
            in: con.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3612
    ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3613
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3614
        "/ found a java exceptionHandler
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3615
        "/
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3616
        handlerContext setPC: handlerPC.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3617
        handlerContext exceptionArg: aJavaException pc: handlerPC.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3618
        handlerContext markForException.
1098
vranyj1
parents: 1097
diff changeset
  3619
        handlerContext unwindAndRestartForJavaException.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3620
        self halt: 'should not be reached'.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3621
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3622
    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3623
    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3624
    Processor activeProcess terminate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3625
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3626
    "
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3627
     ExceptionTrace := true"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3628
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3629
    "Created: / 07-01-1998 / 15:28:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3630
    "Modified: / 24-12-1999 / 02:33:25 / cg"
1098
vranyj1
parents: 1097
diff changeset
  3631
    "Modified: / 08-11-2011 / 22:16:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3632
    "Modified: / 01-12-2011 / 18:32:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3633
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3634
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3635
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3636
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3637
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3638
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3639
    ex := exClass newWith_String: someMessage.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3640
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3641
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3642
    "Created: / 07-01-1998 / 15:25:09 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3643
    "Modified: / 14-01-1998 / 23:38:30 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3644
    "Modified: / 30-10-2011 / 17:44:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3645
    "Modified: / 02-11-2011 / 16:54:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3648
throwExceptionInInitializerError:className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3649
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3650
        throwExceptionClassName:'java.lang.ExceptionInInitializerError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3651
        withMessage:'error when initializing class: ' , className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3653
    "Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3654
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3655
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3656
throwFileNotFoundException: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3657
    ^ self 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3658
        throwExceptionClassName:'java.io.FileNotFoundException' 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3659
        withMessage: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3660
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3661
    "Created: / 04-01-1998 / 22:26:09 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3662
    "Modified: / 10-11-1998 / 13:20:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3663
    "Created: / 10-08-2011 / 14:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3664
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3665
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3666
throwIOExceptionWithMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3667
    IOExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3668
	self halt:'IO Exception'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3669
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3670
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3671
	throwExceptionClassName:'java.io.IOException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3672
	withMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3673
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3674
    "Created: / 7.1.1998 / 10:34:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3675
    "Modified: / 7.1.1998 / 15:26:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3676
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3677
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3678
throwIllegalAccessError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3679
    ^ self throwExceptionClassName: 'java.lang.IllegalAccessError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3680
        withMessage: 'illegal access'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3681
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3682
    "Created: / 13-04-2011 / 23:07:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3683
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3684
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3685
throwIllegalAccessException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3686
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3687
	throwExceptionClassName:'java.lang.IllegalAccessException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3688
	withMessage:'illegal access'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3690
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3691
    "Created: / 14.1.1998 / 23:13:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3692
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3693
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3694
throwIllegalArgumentException: message
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3695
    ^ self 
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3696
        throwExceptionClassName:'java.lang.IllegalArgumentException' 
1151
vranyj1
parents: 1150
diff changeset
  3697
        withMessage: 'illegal argument: ', message
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3698
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3699
    "Modified: / 07-01-1998 / 15:25:35 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3700
    "Created: / 14-01-1998 / 23:13:44 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3701
    "Created: / 07-09-2011 / 14:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3702
!
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3703
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3704
throwIllegalMonitorStateException: message 
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3705
    self throwExceptionClassName: 'java.lang.IllegalMonitorStateException'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3706
            withMessage: message.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3707
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3708
    "Created: / 29-11-2011 / 14:21:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3709
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3710
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3711
throwIncompatibleClassChangeError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3712
        ^ self throwExceptionClassName: 'java.lang.IncompatibleClassChangeError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3713
                withMessage: 'illegal change'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3714
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3715
    "Created: / 11-04-2011 / 20:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3716
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3717
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3718
throwInstantiationException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3719
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3720
	throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3721
	withMessage:'cannot instantiate'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3723
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3724
    "Created: / 14.1.1998 / 23:15:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3725
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3727
throwInstantiationExceptionFor:aJavaClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3728
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3729
        throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3730
        withMessage:('cannot instantiate: ' , aJavaClass javaName)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3732
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3733
    "Created: / 14.1.1998 / 23:17:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3734
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3735
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3736
throwInterruptedException: message 
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3737
    ^ self throwExceptionClassName: 'java.lang.InterruptedException'
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3738
        withMessage:message
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3739
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3740
    "Created: / 30-11-2011 / 12:23:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3741
!
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3742
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3743
throwLinkageError: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3744
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3745
        throwExceptionClassName:'java.lang.LinkageError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3746
        withMessage: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3748
    "Modified: / 10-11-1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3749
    "Created: / 26-11-2010 / 11:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3750
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3751
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3752
throwNoSuchFieldException
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3753
  ^ self throwExceptionClassName: 'java.lang.NoSuchFieldError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3754
        withMessage: 'looking up a field failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3755
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3756
    "Created: / 13-04-2011 / 12:16:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3757
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3758
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3759
throwNoSuchMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3760
      ^ self throwExceptionClassName: 'java.lang.NoSuchMethodError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3761
              withMessage: 'looking up a method failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3762
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3763
    "Created: / 11-04-2011 / 20:33:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3764
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3765
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3766
throwNullPointerException
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  3767
    NullPointerExceptionDebug == true ifTrue:[
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3768
        self halt:'Null Pointer exception'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3769
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3771
    ^ self 
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3772
        throwExceptionClassName:'java.lang.NullPointerException' 
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3773
        withMessage:'null pointer'
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3774
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3775
    "Created: / 09-01-1998 / 02:26:08 / cg"
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3776
    "Modified: / 28-01-1998 / 02:30:09 / cg"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  3777
    "Modified: / 13-08-2011 / 01:10:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3778
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3779
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3780
throwNullPointerException:message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3781
    NullPointerExceptionDebug == true ifTrue: [
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3782
        self halt: 'Null Pointer exception'.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3783
    ].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3784
    ^ self throwExceptionClassName: 'java.lang.NullPointerException'
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3785
        withMessage: message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3786
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3787
    "Created: / 09-01-1998 / 02:26:08 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3788
    "Modified: / 28-01-1998 / 02:30:09 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3789
    "Modified: / 13-08-2011 / 01:10:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3790
    "Created: / 09-12-2011 / 11:13:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3791
!
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3792
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3793
throwNumberFormatException 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3794
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3795
	throwExceptionClassName:'java.lang.NumberFormatException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3796
	withMessage:'bad number format'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3798
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3799
    "Created: / 11.1.1998 / 16:08:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3800
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3801
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3802
throwOutOfMemoryError
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3803
    ^ self 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3804
        throwExceptionClassName:'java.lang.OutOfMemoryError' 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3805
        withMessage:'Oops, out of memory!!'
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3806
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3807
    "Created: / 04-01-1998 / 22:26:09 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3808
    "Modified: / 10-11-1998 / 13:20:31 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3809
    "Created: / 30-08-2011 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3810
!
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3811
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3812
throwSecurityException
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3813
    JavaClassReader classLoaderQuerySignal 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3814
        answer:  nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3815
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3816
            ^ self throwExceptionClassName: 'java.lang.SecurityException'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3817
                withMessage: 'trying to load class from java.lang using different class loader?'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3818
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3819
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3820
    "Created: / 01-11-2011 / 15:55:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3821
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3822
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3823
throwSecurityExceptionWith: message 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3824
    JavaClassReader classLoaderQuerySignal answer: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3825
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3826
            ^ self throwExceptionClassName: 'java.lang.SecurityException'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3827
                withMessage: 'trying to load class from java.lang: ' , message.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3828
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3829
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3830
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3831
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3832
1084
vranyj1
parents: 1083
diff changeset
  3833
throwSocketException: message 
vranyj1
parents: 1083
diff changeset
  3834
    JavaClassReader classLoaderQuerySignal answer: nil
vranyj1
parents: 1083
diff changeset
  3835
        do: [
vranyj1
parents: 1083
diff changeset
  3836
            ^ self throwExceptionClassName: 'java.net.SocketException'
vranyj1
parents: 1083
diff changeset
  3837
                withMessage: message
vranyj1
parents: 1083
diff changeset
  3838
        ].
vranyj1
parents: 1083
diff changeset
  3839
vranyj1
parents: 1083
diff changeset
  3840
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  3841
    "Created: / 03-11-2011 / 23:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  3842
!
vranyj1
parents: 1083
diff changeset
  3843
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3844
throwZipException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3845
    ^ self throwExceptionClassName: 'java.util.zip.ZipException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3846
        withMessage: 'error in opening zip file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3847
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3848
    "Created: / 27-03-2011 / 16:25:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3849
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3850
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3851
!JavaVM class methodsFor:'helpers - io'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3853
anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3854
    |jStream fileNo file|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3856
    jStream := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3857
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3858
    fileNo := self validateFileNo:jStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3859
    fileNo == 0 ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3860
        Logger log: 'JAVA: file is already closed'severity: #info facility: 'JVM'.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3861
        ^ self    "/ already closed
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3862
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3863
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3864
    file isNil ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3865
        self halt:'invalid fileNo in close'.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3866
        self internalError:'invalid fileNo in close'.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3867
        ^ self
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3868
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3869
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3870
    file == Stdin ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3871
        file := StdinReplacementFileQuerySignal raiseRequest.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3872
        file isNil ifTrue:[
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3873
            file := Stdin
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3874
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3875
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3876
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3877
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3879
    (file ~~ Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3880
    and:[file ~~ Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3881
    and:[file ~~ Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3882
    and:[file ~~ Transcript]]]) ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3883
        file close.
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  3884
    ] ifFalse:[
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  3885
        self breakPoint: #jv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3886
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3887
    self setOpenFile:nil at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3889
    fileNo := jStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3890
    fileNo isInteger ifFalse:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3891
        "/ JDK 1.1.3
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3892
        fileNo instVarNamed:'fd' put:0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3893
    ] ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3894
        "/ JDK 1.0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3895
        jStream instVarNamed:'fd' put:0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3896
    ].
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3897
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3898
    "Created: / 04-02-1998 / 15:22:03 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3899
    "Modified: / 14-10-1998 / 15:10:07 / cg"
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  3900
    "Modified: / 07-12-2011 / 21:20:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3901
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3903
anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3904
    |bytes offset count stream nRead|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3906
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3907
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3908
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3910
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3912
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3913
    bytes class isBytes ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3914
        self halt.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3915
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3916
    stream == Stdin ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3917
        stream := StdinReplacementFileQuerySignal raiseRequest.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3918
        stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3919
            ^ -1 "/ 0  EOF
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3920
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3921
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3923
    FileIOTrace ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3924
        ('JAVA: read ' , count printString , ' bytes from ' , stream pathName) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3925
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3927
    stream isPositionable ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3928
        "/ mhmh - some kind of socket or pipe
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3929
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3930
        stream readWait.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3931
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3932
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3933
    count == 0 ifTrue:[^0].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3934
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3935
    Stream readErrorSignal handle:[:ex |
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3936
        nRead := -1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3937
    ] do:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3938
        nRead := stream nextAvailableBytes:count into:bytes startingAt:offset+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3939
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3940
    nRead == 0 ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3941
        stream atEnd ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3942
            FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3943
                ('JAVA: at EOF ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3944
            ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3945
            ^ -1
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3946
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3947
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3948
    count ~~ nRead ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3949
        FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3950
            ('JAVA: only got ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3951
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3952
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3953
    ^ nRead
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3954
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3955
    "Created: / 04-02-1998 / 15:20:00 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3956
    "Modified: / 10-11-1998 / 19:56:47 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  3957
    "Modified: / 10-08-2011 / 21:35:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3958
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3959
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3960
anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3961
    |bytes offset count stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3963
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3964
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3965
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3967
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3969
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3970
        stream isFileStream ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3971
            Logger log: ('write ' , count printString , ' bytes to ' , stream pathName) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3972
        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3973
            stream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3974
                stream ~~ Stderr ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  3975
                    Logger log: ('write ' , count printString , ' bytes to ' , stream displayString) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3976
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3977
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3978
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3979
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3980
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3981
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3982
    Stream writeErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3983
        ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3984
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3985
        Socket brokenConnectionSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3986
            ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3987
        ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3988
            stream isBinary ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3989
                stream nextPutBytes:count from:bytes startingAt:offset+1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3990
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3991
                stream nextPutAll: (bytes asString copyFrom: offset + 1 to: offset + count).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3992
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3993
            
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3994
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3995
        stream == Transcript ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3996
            Transcript endEntry
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3997
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3998
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4000
    "Created: / 04-02-1998 / 15:23:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4001
    "Modified: / 16-02-1999 / 11:32:45 / cg"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4002
    "Modified: / 14-09-2011 / 22:05:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4003
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4004
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4005
checkWritePermissionOfDirectory:dir message:msg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4006
    |answer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4008
    (PermittedDirectories notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4009
    and:[PermittedDirectories includes:dir]) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4010
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4011
	    answer := Dialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4012
		    confirmWithCancel:msg withCRs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4013
			       labels:#('no' 'grant')
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4014
			       values:#(false true)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4015
			      default:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4016
	    answer == false ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4017
		^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4018
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4020
	    (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir pathName , ''') ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4021
	    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4022
		PermittedDirectories isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4023
		    PermittedDirectories := Set new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4024
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4025
		PermittedDirectories add:dir.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4026
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4027
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4028
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4029
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4030
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4031
    "Created: / 3.12.1998 / 15:07:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4032
    "Modified: / 3.12.1998 / 15:16:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4034
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4035
commonClose:nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4036
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4037
    | fdobj fd stream |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4038
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4039
    fd    := fdobj instVarNamed: #fd.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4040
    fd == -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4041
        "Never opened or already closed"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4042
        ^self.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4043
    ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4044
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4045
    stream notNil ifTrue:[
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4046
        stream isView ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4047
            self breakPoint: #jv. 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4048
        ] ifFalse:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4049
            stream close.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4050
        ]
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4051
    ] ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4052
        self breakPoint: #jv.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4053
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4054
    self setOpenFile: nil at: fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4055
    fdobj instVarNamed:#fd put: -1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4056
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4057
    "Created: / 10-08-2011 / 14:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4058
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4059
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4060
commonOpen:nativeContext forAppend:forAppend
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4061
    |fs fd fn name dir stream fileNo answer readonly|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4062
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4063
    fs := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4064
    fd := fs instVarNamed:'fd'.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4065
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4066
        "/self halt:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4067
        self internalError:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4068
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4069
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4071
    name := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4072
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4074
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4075
        ('JAVA: opening ' , name) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4076
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4077
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4078
    fn := name utf8Decoded asFilename.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4079
    dir := fn directory pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4081
    readonly := false.
904
vranyj1
parents: 903
diff changeset
  4082
"/    (PermittedDirectories notNil
vranyj1
parents: 903
diff changeset
  4083
"/    and:[PermittedDirectories includes:dir]) ifFalse:[
vranyj1
parents: 903
diff changeset
  4084
"/        FileOpenConfirmation ifTrue:[
vranyj1
parents: 903
diff changeset
  4085
"/            answer := Dialog 
vranyj1
parents: 903
diff changeset
  4086
"/                    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
vranyj1
parents: 903
diff changeset
  4087
"/                               labels:#('no' 'grant' 'readonly')
vranyj1
parents: 903
diff changeset
  4088
"/                               values:#(false true #readonly)
vranyj1
parents: 903
diff changeset
  4089
"/                              default:3.
vranyj1
parents: 903
diff changeset
  4090
"/            answer == false ifTrue:[
vranyj1
parents: 903
diff changeset
  4091
"/                self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
vranyj1
parents: 903
diff changeset
  4092
"/                ^ self
vranyj1
parents: 903
diff changeset
  4093
"/            ].
vranyj1
parents: 903
diff changeset
  4094
"/            readonly := (answer == #readonly).
vranyj1
parents: 903
diff changeset
  4095
"/
vranyj1
parents: 903
diff changeset
  4096
"/            readonly ifFalse:[
vranyj1
parents: 903
diff changeset
  4097
"/                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
vranyj1
parents: 903
diff changeset
  4098
"/                ifTrue:[
vranyj1
parents: 903
diff changeset
  4099
"/                    PermittedDirectories isNil ifTrue:[
vranyj1
parents: 903
diff changeset
  4100
"/                        PermittedDirectories := Set new
vranyj1
parents: 903
diff changeset
  4101
"/                    ].
vranyj1
parents: 903
diff changeset
  4102
"/                    PermittedDirectories add:dir.
vranyj1
parents: 903
diff changeset
  4103
"/                ]
vranyj1
parents: 903
diff changeset
  4104
"/            ]
vranyj1
parents: 903
diff changeset
  4105
"/        ]
vranyj1
parents: 903
diff changeset
  4106
"/    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4108
    readonly ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4109
        (fn exists and:[fn isReadable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4110
            ^self throwFileNotFoundException: 'File is not readable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4111
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4112
        stream := fn readStream.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4113
    ] ifFalse:[    
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4114
"/        fn exists ifFalse:[
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4115
"/            ^self throwFileNotFoundException: 'File does not exist'
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4116
"/        ].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4117
        fn isDirectory ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4118
             ^self throwFileNotFoundException: 'File is directory'
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4119
        ].
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4120
        (fn exists and:[fn isWritable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4121
            ^self throwFileNotFoundException: 'File does not writable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4122
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4123
        forAppend ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4124
            stream := fn appendingWriteStream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4125
        ] ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4126
            stream := fn writeStream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4127
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4128
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4129
    stream isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4130
        self throwIOExceptionWithMessage:('cannot open ' , name , ' for writing').
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4131
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4133
    fileNo := self addOpenFile:stream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4135
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4136
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4137
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4139
    fd instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4140
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4141
    "Created: / 07-04-1998 / 19:14:09 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4142
    "Modified: / 04-01-1999 / 14:34:42 / cg"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4143
    "Modified: / 05-12-2011 / 23:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4144
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4146
fileStreamForReading:name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4147
    |fn stream tryAlongClassPath|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4148
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4149
    FileOpenTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4150
        ('JAVA: opening for read:' , name) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4151
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4152
    fn := name asFilename.
904
vranyj1
parents: 903
diff changeset
  4153
    fn exists  ifFalse:[
vranyj1
parents: 903
diff changeset
  4154
        ^self throwFileNotFoundException: 'File does not exists'
vranyj1
parents: 903
diff changeset
  4155
    ].
vranyj1
parents: 903
diff changeset
  4156
    fn isDirectory ifTrue:[
vranyj1
parents: 903
diff changeset
  4157
        ^self throwFileNotFoundException: 'File is directory'
vranyj1
parents: 903
diff changeset
  4158
    ].
vranyj1
parents: 903
diff changeset
  4159
    fn isReadable  ifFalse:[
vranyj1
parents: 903
diff changeset
  4160
        ^self throwFileNotFoundException: 'File is not readable'
vranyj1
parents: 903
diff changeset
  4161
    ].
vranyj1
parents: 903
diff changeset
  4162
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4163
    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4164
    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4166
    fn isAbsolute ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4167
        "/ if not absolute, try along classPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4168
        "/ This allows classes to open local files (JEdit)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4169
        "/ even if they have NOT been loaded by a Java classLoader.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4170
        "/ Only do this for image files 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4171
        "/ (and maybe some other config files in the future),
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4172
        "/ to avoid security holes.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4173
        tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4174
"/        tryAlongClassPath := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4175
"/        (fn hasSuffix:'gif') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4176
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4177
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4178
"/        (fn hasSuffix:'jpg') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4179
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4180
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4181
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4182
        tryAlongClassPath ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4183
            Java effectiveClassPath do:[:dirName |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4184
                |fn|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4186
                (fn := dirName asFilename construct:name) exists ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4187
                    fn isReadable ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4188
                        self throwFileNotFoundException: 'File is not readable'.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4189
                        ^nil
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4190
                    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4191
                    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4192
                    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4193
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4194
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4195
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4196
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4197
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4199
    "Modified: / 27-01-1999 / 18:54:46 / cg"
904
vranyj1
parents: 903
diff changeset
  4200
    "Modified: / 10-08-2011 / 19:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4201
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4203
fixFilename:path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4204
    OperatingSystem isMSDOSlike ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4205
	(#($/ $\) includes:(path at:1)) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4206
	    (path at:3) == $: ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4207
		^ path copyFrom:2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4208
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4209
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4210
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4211
    ^ path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4213
    "Created: / 20.10.1998 / 20:58:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4214
    "Modified: / 20.10.1998 / 21:06:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4215
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4217
validateFile:javaStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4218
    |fileNo file descriptor|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4219
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4220
    fileNo := self validateFileNo:javaStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4221
    fileNo isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4222
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4223
"/        self internalError:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4224
	self throwIOExceptionWithMessage:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4225
	^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4226
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4227
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4228
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4230
    file isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4231
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4232
"/        self internalError:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4233
	self throwIOExceptionWithMessage:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4234
	^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4235
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4237
    ^ file
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4239
    "Created: / 4.1.1998 / 16:50:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4240
    "Modified: / 4.1.1998 / 17:50:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4241
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4243
validateFileNo:javaStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4244
    |fileNo file descriptor|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4246
    "/ JDK 1.1.3 has fileDescriptor wrapped
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4247
    "/ JDK 1.0 has it directly as integer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4249
    fileNo := javaStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4250
    fileNo isInteger ifFalse:[
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4251
        descriptor := fileNo.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4252
        descriptor notNil ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4253
            fileNo := descriptor instVarNamed:'fd'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4254
            ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4255
                fileNo := descriptor instVarNamed:'handle'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4256
            ]
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4257
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4258
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4260
    fileNo isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4261
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4262
"/        self internalError:'invalid fileNo in read'.
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4263
        self throwIOExceptionWithMessage:'invalid fileNo in read'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4264
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4265
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4267
    ^ fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4268
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4269
    "Created: / 04-01-1998 / 17:49:08 / cg"
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4270
    "Modified: / 13-01-1998 / 14:07:47 / cg"
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4271
    "Modified: / 18-08-2011 / 20:03:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4272
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4273
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4274
!JavaVM class methodsFor:'helpers - reflection'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4276
classForJavaClassObject:aJavaClassObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4277
    "given java.lang.class instance, return the real class for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4278
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4279
    ^ self reflection classForJavaClassObject:aJavaClassObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4281
    "Created: / 23-01-1998 / 17:44:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4282
    "Modified: / 03-02-2011 / 21:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4283
    "Modified: / 09-02-2011 / 01:02:17 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4284
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4285
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4286
javaClassObjectForClass: aClass 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4287
    "given a real class, return the corresponding java.lang.class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4288
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4289
    
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4290
    | class |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4292
    "find reflection of StClass in the Java World"
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4293
    (JavaObjectDictionary new hasReflection: aClass name) ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4294
        class := JavaObjectDictionary new reflectionOf: aClass name
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4295
    ] ifFalse: [ class := aClass. ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4296
    ^ self reflection javaClassObjectForClass: class.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4298
    "Created: / 23-01-1998 / 17:43:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4299
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4300
    "Modified: / 17-01-2011 / 19:24:22 / kursjan <kursjan@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4301
    "Modified: / 28-01-2011 / 14:31:25 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4302
    "Modified: / 03-02-2011 / 21:31:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4303
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4305
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4306
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4307
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4308
    self breakPoint:#mh info:'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4309
    ^ self reflection javaConstructorObjectForMethod: method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4311
    "Modified: / 09-02-2011 / 00:58:09 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4312
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4314
javaFieldObjectForField: aJavaField in: aJavaLangClass 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4315
    "given a java field, return the corresponding java.lang.Field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4316
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4317
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4318
        See OpenJDK7 source:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4319
        jdk7/hotspot/src/share/vm/runtime/reflection.cpp,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4320
        oop Reflection::new_field"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4321
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4322
    | field  clazz  name  slot  type  modifiers |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4324
    clazz := aJavaLangClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4325
    name := self reflection javaStringObjectForString: aJavaField name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4326
                interned: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4327
    slot := aJavaField index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4328
    type := self javaClassObjectForClass: aJavaField typeClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4329
    modifiers := aJavaField accessFlags.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4330
    field := (self classForName: 'java.lang.reflect.Field') new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4331
    field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4332
        instVarNamed: #clazz put: clazz;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4333
        instVarNamed: #name put: name;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4334
        instVarNamed: #slot put: slot;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4335
        instVarNamed: #type put: type;
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4336
        instVarNamed: #modifiers put: modifiers;
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4337
        yourself.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4338
    aJavaField annotations 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4339
        ifNotNil: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4340
            field instVarNamed: #annotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4341
                put: aJavaField annotations runtimeVisible rawAnnotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4342
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4343
    ^ field.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4345
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4346
    "Created: / 22-11-2010 / 17:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4347
    "Modified: / 09-02-2011 / 01:06:20 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4348
    "Modified: / 01-04-2011 / 12:11:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4349
    "Modified: / 25-04-2011 / 20:23:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4350
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4352
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4353
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4354
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4356
    ^ self reflection javaMethodObjectForMethod:method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4357
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4358
    "Modified: / 28-02-2011 / 17:08:36 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4359
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4361
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4362
    "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4363
     it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4364
    self breakPoint:#mh info: 'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4365
    ^ self reflection methodForJavaConstructorObject: constructor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4367
    "Modified: / 09-02-2011 / 00:59:43 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4368
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4370
methodForJavaMethodObject:aJavaMethodObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4371
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4372
        Given an instance of java.lang.reflect.Method, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4373
        real method associated with it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4374
   ^ self reflection methodForJavaMethodObject:aJavaMethodObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4376
    "Modified: / 07-02-2011 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4377
    "Modified: / 28-02-2011 / 16:58:05 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4378
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4379
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4380
!JavaVM class methodsFor:'native - com.sun.management'!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4381
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4382
_com_sun_management_UnixOperatingSystem_initialize: nativeContext
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4383
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4384
    <javanative: 'com/sun/management/UnixOperatingSystem' name: 'initialize()V'>
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4385
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4386
Logger log: 'mh did not set page_size here, which he should :)' severity:#info facility:#JVM.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4387
^self.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4388
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4389
    "Modified: / 03-11-2011 / 18:59:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4390
! !
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  4391
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4392
!JavaVM class methodsFor:'native - java.awt'!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4393
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4394
_java_awt_AWTEvent_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4395
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4396
    <javanative: 'java/awt/AWTEvent' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4397
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4398
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4399
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4400
    "Modified: / 12-08-2011 / 19:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4401
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4402
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4403
_java_awt_Color_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4404
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4405
    <javanative: 'java/awt/Color' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4406
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4407
        "/ new with jdk1.2 ...
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4408
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4409
    "Created: / 28.1.1998 / 22:19:23 / cg"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4410
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  4411
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4412
_java_awt_Component_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4413
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4414
    <javanative: 'java/awt/Component' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4415
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4416
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4417
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4418
    "Created: / 27.1.1998 / 19:53:29 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4419
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4420
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4421
_java_awt_Container_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4422
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4423
    <javanative: 'java/awt/Container' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4424
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4425
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4426
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4427
    "Modified: / 12-08-2011 / 19:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4428
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4429
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4430
_java_awt_Dimension_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4431
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4432
    <javanative: 'java/awt/Dimension' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4433
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4434
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4435
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4436
    "Modified: / 12-08-2011 / 19:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4437
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4438
1247
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4439
_java_awt_Event_initIDs: nativeContext
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4440
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4441
    <javanative: 'java/awt/Event' name: 'initIDs()V'>
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4442
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4443
    ^ UnimplementedNativeMethodSignal raise
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4444
!
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  4445
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4446
_java_awt_Rectangle_initIDs: nativeContext
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4447
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4448
    <javanative: 'java/awt/Rectangle' name: 'initIDs()V'>
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4449
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  4450
    "Intentionally left blank"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  4451
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  4452
    "Modified: / 27-10-2011 / 15:07:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4453
!
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4454
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4455
_java_awt_Toolkit_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4456
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4457
    <javanative: 'java/awt/Toolkit' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4458
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4459
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4460
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4461
    "Created: / 27.1.1998 / 19:53:50 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4462
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  4463
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4464
!JavaVM class methodsFor:'native - java.io'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4466
_java_io_FileDescriptor_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4467
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4468
    <javanative: 'java/io/FileDescriptor' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4470
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4471
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4472
    "Created: / 27.1.1998 / 18:16:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4473
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4474
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4475
_java_io_FileDescriptor_set: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4476
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4477
    <javanative: 'java/io/FileDescriptor' name: 'set(I)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4478
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4479
    "SunJDK Speciofic method, we don't need handles, so return
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4480
     FD instead"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4481
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4482
    ^nativeContext argAt:1
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4483
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4484
    "Modified: / 18-08-2011 / 19:54:36 / jv"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4485
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  4486
904
vranyj1
parents: 903
diff changeset
  4487
_java_io_FileDescriptor_sync: nativeContext
vranyj1
parents: 903
diff changeset
  4488
vranyj1
parents: 903
diff changeset
  4489
    <javanative: 'java/io/FileDescriptor' name: 'sync'>
vranyj1
parents: 903
diff changeset
  4490
    "
vranyj1
parents: 903
diff changeset
  4491
    /**
vranyj1
parents: 903
diff changeset
  4492
    * Force all system buffers to synchronize with the underlying
vranyj1
parents: 903
diff changeset
  4493
    * device.  This method returns after all modified data and
vranyj1
parents: 903
diff changeset
  4494
    * attributes of this FileDescriptor have been written to the
vranyj1
parents: 903
diff changeset
  4495
    * relevant device(s).  In particular, if this FileDescriptor
vranyj1
parents: 903
diff changeset
  4496
    * refers to a physical storage medium, such as a file in a file
vranyj1
parents: 903
diff changeset
  4497
    * system, sync will not return until all in-memory modified copies
vranyj1
parents: 903
diff changeset
  4498
    * of buffers associated with this FileDescriptor have been
vranyj1
parents: 903
diff changeset
  4499
    * written to the physical medium.
vranyj1
parents: 903
diff changeset
  4500
    *
vranyj1
parents: 903
diff changeset
  4501
    * sync is meant to be used by code that requires physical
vranyj1
parents: 903
diff changeset
  4502
    * storage (such as a file) to be in a known state  For
vranyj1
parents: 903
diff changeset
  4503
    * example, a class that provided a simple transaction facility
vranyj1
parents: 903
diff changeset
  4504
    * might use sync to ensure that all changes to a file caused
vranyj1
parents: 903
diff changeset
  4505
    * by a given transaction were recorded on a storage medium.
vranyj1
parents: 903
diff changeset
  4506
    *
vranyj1
parents: 903
diff changeset
  4507
    * sync only affects buffers downstream of this FileDescriptor.  If
vranyj1
parents: 903
diff changeset
  4508
    * any in-memory buffering is being done by the application (for
vranyj1
parents: 903
diff changeset
  4509
    * example, by a BufferedOutputStream object), those buffers must
vranyj1
parents: 903
diff changeset
  4510
    * be flushed into the FileDescriptor (for example, by invoking
vranyj1
parents: 903
diff changeset
  4511
    * OutputStream.flush) before that data will be affected by sync.
vranyj1
parents: 903
diff changeset
  4512
    *
vranyj1
parents: 903
diff changeset
  4513
    * @exception SyncFailedException
vranyj1
parents: 903
diff changeset
  4514
    *        Thrown when the buffers cannot be flushed,
vranyj1
parents: 903
diff changeset
  4515
    *        or because the system cannot guarantee that all the
vranyj1
parents: 903
diff changeset
  4516
    *        buffers have been synchronized with physical media.
vranyj1
parents: 903
diff changeset
  4517
    * @since     JDK1.1
vranyj1
parents: 903
diff changeset
  4518
    */
vranyj1
parents: 903
diff changeset
  4519
    public native void sync() throws SyncFailedException;
vranyj1
parents: 903
diff changeset
  4520
    "
vranyj1
parents: 903
diff changeset
  4521
vranyj1
parents: 903
diff changeset
  4522
    OpenFileTable do:[:stream|
vranyj1
parents: 903
diff changeset
  4523
        stream notNil ifTrue:[stream flush].
vranyj1
parents: 903
diff changeset
  4524
    ].
vranyj1
parents: 903
diff changeset
  4525
vranyj1
parents: 903
diff changeset
  4526
    "Created: / 12-11-1998 / 19:26:25 / cg"
vranyj1
parents: 903
diff changeset
  4527
    "Modified (format): / 10-08-2011 / 19:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 903
diff changeset
  4528
!
vranyj1
parents: 903
diff changeset
  4529
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4530
_java_io_FileInputStream_available: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4531
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4532
    <javanative: 'java/io/FileInputStream' name: 'available'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4533
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4534
        |file|
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4535
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4536
    file := self validateFile:(nativeContext receiver).
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4537
    file isNil ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4538
	self throwIOExceptionWithMessage:'invalid fileNo in available'.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4539
	^ self
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4540
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4541
    file == Stdin ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4542
	file := StdinReplacementFileQuerySignal raiseRequest.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4543
	file isNil ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4544
	    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4545
	]
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4546
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4547
    file isFileStream ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4548
	^ file size - file position + 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4549
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4550
    file atEnd ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4551
	^ 0.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4552
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4553
    self halt.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4554
    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4555
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4556
    "Modified: / 14.1.1998 / 15:12:52 / cg"
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4557
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4558
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4559
_java_io_FileInputStream_close0: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4560
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4561
    <javanative: 'java/io/FileInputStream' name: 'close0'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4562
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4563
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4564
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4565
    "Modified: / 10-08-2011 / 14:03:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4566
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  4567
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4568
_java_io_FileInputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4570
    <javanative: 'java/io/FileInputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4571
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4572
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4573
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4574
    "Created: / 27.1.1998 / 18:15:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4575
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4576
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4577
_java_io_FileInputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4578
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4579
    <javanative: 'java/io/FileInputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4580
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4581
        |fs fd fn name stream fileNo|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4582
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4583
    fs := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4584
    fd := fs instVarNamed:'fd'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4585
    (fileNo := fd instVarNamed:'fd') ~~ 0 ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4586
        fileNo ~~ -1 ifTrue:[
vranyj1
parents: 903
diff changeset
  4587
            self halt:'file already open'.
vranyj1
parents: 903
diff changeset
  4588
            self internalError:'file already open'.
vranyj1
parents: 903
diff changeset
  4589
            ^ self.
vranyj1
parents: 903
diff changeset
  4590
        ]
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4591
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4592
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4593
    name := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4594
    name := Java as_ST_String:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4595
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4596
    name := self fixFilename:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4597
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4598
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4599
        ('JAVA: opening ' , name) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4600
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4601
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4602
    stream := self fileStreamForReading:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4603
    stream isNil ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4604
        ^ self.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4605
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4606
    stream buffered:false.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4607
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4608
"/    FileOpenConfirmation ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4609
"/        (self confirm:('JAVA Security check\\Opening ''' , name , ''' for reading.\Grant permission ?') withCRs)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4610
"/        ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4611
"/            self throwIOExceptionWithMessage:('no permission to open ' , name , ' for reading').
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4612
"/            ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4613
"/        ]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4614
"/    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4615
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4616
    fileNo := self addOpenFile:stream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4617
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4618
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4619
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4620
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4621
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4622
    fd instVarNamed:'fd' put:fileNo.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4623
904
vranyj1
parents: 903
diff changeset
  4624
    "Created: / 04-01-1998 / 16:47:12 / cg"
vranyj1
parents: 903
diff changeset
  4625
    "Modified: / 28-01-1999 / 17:24:07 / cg"
vranyj1
parents: 903
diff changeset
  4626
    "Modified: / 10-08-2011 / 19:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4627
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4628
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4629
_java_io_FileInputStream_read: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4630
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4631
    <javanative: 'java/io/FileInputStream' name: 'read()I'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4632
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4633
        |file byte|
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4634
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4635
    file := self validateFile:(nativeContext receiver).
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4636
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4637
    file == Stdin ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4638
	file := StdinReplacementFileQuerySignal raiseRequest.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4639
	file isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4640
	    ^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4641
	]
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4642
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4643
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4644
    FileIOTrace ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4645
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4646
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4647
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4648
    byte := file nextByte.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4649
    byte isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4650
	^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4651
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4652
    ^ byte
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4653
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4654
    "Created: / 5.1.1998 / 02:17:08 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4655
    "Modified: / 5.1.1998 / 02:17:25 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4656
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4657
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4658
_java_io_FileInputStream_readBytes: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4659
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4660
    <javanative: 'java/io/FileInputStream' name: 'readBytes'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4661
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4662
    ^ self anyStream_readBytes:nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4663
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4664
    "Modified: / 04-02-1998 / 15:23:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4665
    "Modified (format): / 10-08-2011 / 21:32:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4666
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  4667
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4668
_java_io_FileOutputStream_close0: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4669
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4670
    <javanative: 'java/io/FileOutputStream' name: 'close0'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4671
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4672
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4673
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4674
    "Modified: / 10-08-2011 / 14:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4675
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4676
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4677
_java_io_FileOutputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4679
    <javanative: 'java/io/FileOutputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4681
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4683
    "Created: / 27.1.1998 / 18:16:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4684
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4685
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4686
_java_io_FileOutputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4687
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4688
    <javanative: 'java/io/FileOutputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4689
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4690
    ^ self commonOpen:nativeContext forAppend:false
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4691
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4692
    "Modified: / 07-04-1998 / 19:14:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4693
    "Modified (format): / 10-08-2011 / 14:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4694
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4695
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4696
_java_io_FileOutputStream_openAppend: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4697
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4698
    <javanative: 'java/io/FileOutputStream' name: 'openAppend'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4699
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4700
    ^ self commonOpen:nativeContext forAppend:true
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4701
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4702
    "Modified: / 07-04-1998 / 19:13:42 / cg"
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4703
    "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4704
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  4705
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4706
_java_io_FileOutputStream_write: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4707
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4708
    <javanative: 'java/io/FileOutputStream' name: 'write'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4709
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4710
     /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4711
     * Writes the specified byte to this file output stream. Implements
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4712
     * the <code>write</code> method of <code>OutputStream</code>.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4713
     *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4714
     * @param      b   the byte to be written.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4715
     * @exception  IOException  if an I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4716
     */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4717
     public native void write(int b) throws IOException;
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4718
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4719
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4720
    | fdobj fd stream b |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4721
    b := nativeContext argAt:1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4722
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4723
    fd    := fdobj instVarNamed: #fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4724
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4725
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4726
        stream nextPut: b asCharacter
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4727
    ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4728
        self throwIOExceptionWithMessage: ex description
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4729
    ]
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4730
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4731
    "Modified: / 10-08-2011 / 14:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4732
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4733
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4734
_java_io_FileOutputStream_writeBytes: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4736
    <javanative: 'java/io/FileOutputStream' name: 'writeBytes'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4737
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4738
        ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4739
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4740
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4741
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4742
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4743
_java_io_FileSystem_getFileSystem: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4744
    <javanative: 'java/io/FileSystem' name: 'getFileSystem'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4745
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4746
        ^ (self classForName: 'java.io.UnixFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4747
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4748
    OperatingSystem isMSWINDOWSlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4749
        ^ (Java classForName: 'java.io.WinNTFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4750
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4751
    self error: 'Unknown/Unsupported platform'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4753
    "Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4754
    "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4755
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4756
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4757
_java_io_ObjectInputStream_latestUserDefinedLoader: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4758
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4759
    <javanative: 'java/io/ObjectInputStream' name: 'latestUserDefinedLoader'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4760
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4761
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4762
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4763
    * Returns the first non-null class loader (not counting class loaders of
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4764
    * generated reflection implementation classes) up the execution stack, or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4765
    * null if only code from the null class loader is on the stack.  This
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4766
    * method is also called via reflection by the following RMI-IIOP class:
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4767
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4768
    *     com.sun.corba.se.internal.util.JDKClassLoader
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4769
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4770
    * This method should not be removed or its signature changed without
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4771
    * corresponding modifications to the above class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4772
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4773
    // REMIND: change name to something more accurate?
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4774
    private static native ClassLoader latestUserDefinedLoader();
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4775
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4776
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4777
    | ctx cl |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4778
    ctx := nativeContext.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4779
    [ ctx notNil ] whileTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4780
        ctx receiver isJavaObject ifTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4781
            (cl := ctx receiver class classLoader) notNil ifTrue:[
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4782
                "/self breakPoint: #jv info: 'Should not count class loaders of generated reflection implementation classes'.
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4783
                "/Please check"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4784
                ^cl.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4785
            ]                    
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4786
        ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4787
        ctx := ctx sender.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4788
    ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4789
    ^nil
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4790
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  4791
    "Modified: / 30-08-2011 / 16:00:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4792
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4793
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4794
_java_io_ObjectStreamClass_hasStaticInitializer: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4795
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4796
    <javanative: 'java/io/ObjectStreamClass' name: 'hasStaticInitializer'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4797
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4798
    | cls |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4799
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4800
    ^(cls includesSelector: #'<clinit>()V') ifTrue:[1] ifFalse:[0]
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4801
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  4802
    "Modified: / 10-08-2011 / 01:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4803
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4804
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4805
_java_io_ObjectStreamClass_initNative: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4806
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4807
    <javanative: 'java/io/ObjectStreamClass' name: 'initNative'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4808
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4809
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4810
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4811
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4812
     * Initializes native code.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4813
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4814
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4815
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4817
    "Created: / 20-12-2010 / 17:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4818
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4819
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4820
_java_io_RandomAccessFile_initIDs: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4821
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4822
    <javanative: 'java/io/RandomAccessFile' name: 'initIDs'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4823
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4824
    "Nothing to do"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4825
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4826
    "Modified: / 10-08-2011 / 21:49:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4827
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4828
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4829
_java_io_RandomAccessFile_open: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4830
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4831
    <javanative: 'java/io/RandomAccessFile' name: 'open'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4832
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4833
        |fs fd name dir stream fileNo answer readonly|
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4834
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4835
    readonly := false.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4836
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4837
    fs := nativeContext receiver.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4838
    fd := fs instVarNamed:'fd'.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4839
    (fd instVarNamed:'fd') ~~ 0 ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4840
	self halt:'file already open'.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4841
	self internalError:'file already open'.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4842
	^ self.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4843
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4844
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4845
    name := nativeContext argAt:1.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4846
    name := Java as_ST_String:name.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4847
    name := self fixFilename:name.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4848
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4849
    FileOpenTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4850
	('JAVA: opening ' , name) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4851
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4852
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4853
    dir := name asFilename directory pathName.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4854
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4855
    (PermittedDirectories notNil
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4856
    and:[PermittedDirectories includes:dir]) ifFalse:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4857
	FileOpenConfirmation ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4858
	    answer := Dialog 
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4859
		    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4860
			       labels:#('no' 'grant' 'readonly')
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4861
			       values:#(false true #readonly)
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4862
			      default:3.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4863
	    answer == false ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4864
		self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4865
		^ self
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4866
	    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4867
	    readonly := (answer == #readonly).
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4868
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4869
	    readonly ifFalse:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4870
		(self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4871
		ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4872
		    PermittedDirectories isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4873
			PermittedDirectories := Set new
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4874
		    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4875
		    PermittedDirectories add:dir.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4876
		]
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4877
	    ]
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4878
	]
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4879
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4880
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4881
    readonly ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4882
	stream := name asFilename readStream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4883
    ] ifFalse:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4884
	stream := name asFilename readWriteStream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4885
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4886
    stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4887
	self throwIOExceptionWithMessage:('cannot open ' , name , ' for writing').
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4888
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4889
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4890
    fileNo := self addOpenFile:stream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4891
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4892
    FileOpenTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4893
	('JAVA: opened ' , name , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4894
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4895
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4896
    fd instVarNamed:'fd' put:fileNo.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4897
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4898
    "Created: / 4.2.1998 / 00:14:48 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4899
    "Modified: / 12.11.1998 / 21:29:46 / cg"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4900
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4901
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4902
_java_io_UnixFileSystem_canonicalize0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4903
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4904
    <javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4905
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4906
    |  path |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4908
    path := Java as_ST_String: (aJavaContext argAt: 1).
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4909
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4911
    "Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4912
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  4913
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4914
_java_io_UnixFileSystem_checkAccess: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4915
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4916
    <javanative: 'java/io/UnixFileSystem' name: 'checkAccess'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4917
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4918
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4919
     public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4920
     public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4921
     public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4922
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4923
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4924
    | fileobj file access result |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4925
    fileobj := nativeContext argAt:1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4926
    file := (Java as_ST_String:(fileobj instVarNamed:#path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4927
    access := nativeContext argAt:2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4928
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4929
        access == 16r01 ifTrue:[result := file isExecutable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4930
        access == 16r02 ifTrue:[result := file isWritable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4931
        access == 16r04 ifTrue:[result := file isReadable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4932
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4933
        result := false.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4934
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4935
    ^result ifTrue:[1] ifFalse:[0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4936
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4937
    "Modified: / 09-08-2011 / 17:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4938
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4939
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4940
_java_io_UnixFileSystem_createDirectory: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4941
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4942
    <javanative: 'java/io/UnixFileSystem' name: 'createDirectory'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4943
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4944
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4945
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4946
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4947
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4948
    file exists ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4949
        [
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4950
            file recursiveMakeDirectory.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4951
            ^1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4952
        ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4953
            self throwIOExceptionWithMessage:ex description.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4954
        ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4955
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4956
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4957
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4958
    "Modified: / 05-12-2011 / 23:04:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4959
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4960
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4961
_java_io_UnixFileSystem_createFileExclusively: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4962
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4963
    <javanative: 'java/io/UnixFileSystem' name: 'createFileExclusively'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4964
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4965
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4966
    file := Java as_ST_String: (nativeContext argAt:1).
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4967
    file := file asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4968
    file exists ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4969
        [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4970
            file createAsEmptyFile
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4971
        ] on: Error do:[:ex|
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4972
            self throwIOExceptionWithMessage:ex description.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4973
        ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4974
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4975
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4976
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4977
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4978
    "Modified: / 10-08-2011 / 13:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4979
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4980
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4981
_java_io_UnixFileSystem_delete0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4982
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4983
    <javanative: 'java/io/UnixFileSystem' name: 'delete0'>
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4984
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4985
      /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4986
      * Delete the file or directory denoted by the given abstract pathname,
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4987
      * returning <code>true</code> if and only if the operation succeeds.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4988
      */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4989
      public abstract boolean delete(File f);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4990
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4991
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4992
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4993
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4994
    file exists ifFalse:[^0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4995
    ^[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4996
        file remove.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4997
        true
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4998
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  4999
        false
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5000
    ]
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5001
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5002
    "Modified: / 09-08-2011 / 17:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5003
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5004
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5005
_java_io_UnixFileSystem_getBooleanAttributes0: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5006
    <javanative: 'java/io/UnixFileSystem' name: 'getBooleanAttributes0'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5007
    | file  path  retval  fileSystemClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5008
    retval := 0.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  5009
    file := (aJavaContext argAt: 1).
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  5010
    path := Java as_ST_String: ((aJavaContext argAt: 1) perform: #'getAbsolutePath()Ljava/lang/String;').
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5011
    fileSystemClass := (self classForName: 'java.io.FileSystem').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5012
    path asFilename exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5013
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_EXISTS')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5014
    ] ifFalse: [ ^ 0. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5015
    path asFilename isDirectory ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5016
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_DIRECTORY')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5017
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5018
    path asFilename isRegularFile ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5019
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_REGULAR')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5020
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5021
    path asFilename isHidden ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5022
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_HIDDEN')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5023
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5024
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5026
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5027
    "Created: / 10-12-2010 / 14:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5028
    "Modified: / 11-12-2010 / 19:44:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  5029
    "Modified: / 03-11-2011 / 11:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5030
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5032
_java_io_UnixFileSystem_getLastModifiedTime: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5034
    <javanative: 'java/io/UnixFileSystem' name: 'getLastModifiedTime'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5035
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5036
        | file  path  retval |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5037
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5038
    retval := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5039
    file := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5040
    path := Java as_ST_String: (file instVarNamed: #path).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5041
    retval := path asFilename modificationTime asMilliseconds.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5042
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5043
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5044
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5045
    "Modified: / 11-12-2010 / 19:44:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5046
    "Created: / 27-03-2011 / 15:32:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5047
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5048
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5049
_java_io_UnixFileSystem_getLength: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5050
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5051
    <javanative: 'java/io/UnixFileSystem' name: 'getLength'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5052
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5053
    | file |
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5054
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5055
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5056
    file exists ifFalse:[^0].
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5057
    ^file fileSize
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5058
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5059
    "Modified: / 09-08-2011 / 15:38:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5060
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5061
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5062
_java_io_UnixFileSystem_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5063
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5064
    <javanative: 'java/io/UnixFileSystem' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5065
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5066
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5067
    self breakPoint: #libjava
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5069
    "Created: / 10-12-2010 / 14:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5070
    "Modified: / 10-12-2010 / 20:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5071
!
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5072
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5073
_java_io_UnixFileSystem_list: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5074
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5075
    <javanative: 'java/io/UnixFileSystem' name: 'list'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5076
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5077
    /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5078
    * Returns an array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5079
    * directory denoted by this abstract pathname.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5080
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5081
    * <p> If this abstract pathname does not denote a directory, then this
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5082
    * method returns {@code null}.  Otherwise an array of strings is
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5083
    * returned, one for each file or directory in the directory.  Names
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5084
    * denoting the directory itself and the directory's parent directory are
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5085
    * not included in the result.  Each string is a file name rather than a
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5086
    * complete path.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5087
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5088
    * <p> There is no guarantee that the name strings in the resulting array
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5089
    * will appear in any specific order; they are not, in particular,
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5090
    * guaranteed to appear in alphabetical order.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5091
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5092
    * @return  An array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5093
    *          directory denoted by this abstract pathname.  The array will be
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5094
    *          empty if the directory is empty.  Returns {@code null} if
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5095
    *          this abstract pathname does not denote a directory, or if an
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5096
    *          I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5097
    */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5098
   "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5099
    | fileobj file names jnames |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5100
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5101
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5102
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5103
    file exists ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5104
    file isDirectory ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5105
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5106
    names := file directoryContents.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5107
    jnames := String javaArrayClass new: names size.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5108
    1 to: names size do:[:i|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5109
        jnames at: i put: (Java as_String:(names at: i))
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5110
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5111
    ^jnames
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5112
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5113
    "Modified: / 10-08-2011 / 13:28:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5114
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5115
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5116
_java_io_UnixFileSystem_setLastModifiedTime: nativeContext
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5117
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5118
    <javanative: 'java/io/UnixFileSystem' name: 'setLastModifiedTime(Ljava/io/File;J)Z'>
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5119
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5120
    | f mtime file |
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5121
    f := nativeContext argAt: 1.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5122
    mtime := nativeContext argAt: 2.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5123
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5124
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5125
    self breakPoint: #jv. "There is no interface for that in St/X"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5126
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5127
    "Modified: / 05-12-2011 / 23:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5128
!
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  5129
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5130
_java_io_UnixFileSystem_setPermission: nativeContext
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5131
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5132
    <javanative: 'java/io/UnixFileSystem' name: 'setPermission'>
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5133
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5134
    /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5135
     * Set on or off the access permission (to owner only or to all) to the file
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5136
     * or directory denoted by the given abstract pathname, based on the parameters
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5137
     * enable, access and oweronly.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5138
     */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5139
    public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5140
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5141
    | f access enable owneronly file perms |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5142
    f := nativeContext argAt: 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5143
    access := nativeContext argAt: 2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5144
    enable := (nativeContext argAt: 3) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5145
    owneronly := (nativeContext argAt: 4) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5146
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5147
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5148
    public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5149
    public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5150
    public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5151
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5152
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5153
    access == 16r04 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5154
        perms := owneronly ifFalse:[#(readUser readGroup readOthers)] ifTrue:[#(readUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5155
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5156
    access == 16r02 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5157
        perms := owneronly ifFalse:[#(writeUser writeGroup writeOthers)] ifTrue:[#(writeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5158
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5159
    access == 16r01 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5160
        perms := owneronly ifFalse:[#(executeUser executeGroup executeOthers)] ifTrue:[#(executeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5161
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5162
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5163
        enable ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5164
            file addAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5165
        ] ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5166
            file removeAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5167
        ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5168
        ^ 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5169
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5170
        ^ 0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5171
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5172
    ^0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5173
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5174
    "Modified: / 09-08-2011 / 17:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5175
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5176
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5177
_java_io_UnixFileSystem_setReadOnly: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5178
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5179
    <javanative: 'java/io/UnixFileSystem' name: 'setReadOnly'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5180
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5181
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5182
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5183
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5184
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5185
    file exists ifFalse:[^0].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5186
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5187
        file  removeAccessRights: #(writeUser writeGroup writeOthers).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5188
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5189
    ] on: Error do:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5190
        ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5191
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5192
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5193
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5194
    "Modified: / 10-08-2011 / 13:40:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5195
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5196
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5197
_java_io_Win32FileSystem_initIDs: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5198
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5199
    <javanative: 'java/io/Win32FileSystem' name: 'initIDs()V'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5200
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5201
    "Intentionally left blank"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5202
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5203
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5204
_java_io_WinNTFileSystem_canonicalize0: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5205
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5206
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalize0(Ljava/lang/String;)Ljava/lang/String;'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5207
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5208
    
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5209
    |  path |
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5210
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5211
    path := Java as_ST_String: (aJavaContext argAt: 1).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5212
    ^(Java as_String: path asFilename asAbsoluteFilename pathName)
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5213
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5214
    "Created: / 01-04-2011 / 23:00:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5215
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5216
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5217
_java_io_WinNTFileSystem_canonicalizeWithPrefix0: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5218
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5219
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalizeWithPrefix0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5220
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5221
    |  path |
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5222
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5223
    path := Java as_ST_String: (nativeContext argAt: 2).
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5224
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5225
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5226
    "Modified: / 01-09-2011 / 21:50:47 / jv"
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5227
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5228
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5229
_java_io_WinNTFileSystem_checkAccess: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5230
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5231
    <javanative: 'java/io/WinNTFileSystem' name: 'checkAccess(Ljava/io/File;I)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5232
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5233
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5234
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5235
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5236
_java_io_WinNTFileSystem_createDirectory: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5237
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5238
    <javanative: 'java/io/WinNTFileSystem' name: 'createDirectory(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5239
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5240
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5241
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5242
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5243
_java_io_WinNTFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5244
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5245
    <javanative: 'java/io/WinNTFileSystem' name: 'createFileExclusively(Ljava/lang/String;)Z'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5246
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5247
    ^ self _java_io_UnixFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5248
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5249
    "Modified: / 18-08-2011 / 17:26:11 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5250
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5251
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5252
_java_io_WinNTFileSystem_delete0: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5253
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5254
    <javanative: 'java/io/WinNTFileSystem' name: 'delete0(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5255
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5256
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5257
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5258
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5259
_java_io_WinNTFileSystem_getBooleanAttributes: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5260
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5261
    <javanative: 'java/io/WinNTFileSystem' name: 'getBooleanAttributes(Ljava/io/File;)I'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5262
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5263
    ^ self _java_io_UnixFileSystem_getBooleanAttributes0:aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5264
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5265
    "Created: / 01-04-2011 / 18:10:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5266
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5267
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5268
_java_io_WinNTFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5269
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5270
    <javanative: 'java/io/WinNTFileSystem' name: 'getLastModifiedTime(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5271
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5272
    ^ self _java_io_UnixFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5273
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5274
    "Modified: / 18-08-2011 / 14:12:07 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5275
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5276
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5277
_java_io_WinNTFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5278
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5279
    <javanative: 'java/io/WinNTFileSystem' name: 'getLength(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5280
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5281
    ^ self _java_io_UnixFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5282
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  5283
    "Modified: / 18-08-2011 / 14:15:36 / jv"
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5284
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5285
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5286
_java_io_WinNTFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5287
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5288
    <javanative: 'java/io/WinNTFileSystem' name: 'list(Ljava/io/File;)[Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5289
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5290
    ^ self _java_io_UnixFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5291
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  5292
    "Modified: / 01-09-2011 / 21:46:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  5293
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  5294
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5295
!JavaVM class methodsFor:'native - java.lang'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5296
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5297
_java_lang_ClassLoader_NativeLibrary_load: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5298
    <javanative: 'java/lang/ClassLoader$NativeLibrary' name: 'load'>
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5299
    "/ introduced with jdk1.2 ... (sigh)
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5300
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5301
    | nativeLoader  jLibName  libName  libHandle  index |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5302
  
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5303
    nativeLoader := nativeContext receiver.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5304
    jLibName := nativeContext argAt: 1.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5305
    libName := (Java as_ST_String: jLibName) asFilename baseName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5306
    (index := SimulatedNativeLibs indexOf: libName) ~~ 0 ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5307
        "/        ('JAVA: builtIn nativeLibLoad simulated: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5308
        nativeLoader instVarNamed: 'handle' put: index.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5309
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5310
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5311
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5312
    (LoadedNativeLibs notNil and: [ LoadedNativeLibs includesKey: libName ]) ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5313
        "/        ('JAVA: native library already loaded: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5314
        nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5315
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5316
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5317
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5318
    (self confirm: 'permission to load native library: ' , libName , ' ?') ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5319
        ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5320
    ].
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5321
    self halt.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5322
    libName asFilename exists ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5323
        ('JAVA: no file to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5324
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5325
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5326
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5327
    libHandle := ObjectFileLoader loadLibrary: libName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5328
    libHandle isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5329
        ('JAVA: failed to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5330
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5331
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5332
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5333
    LoadedNativeLibs isNil ifTrue: [ LoadedNativeLibs := Dictionary new. ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5334
    LoadedNativeLibs at: libName put: libHandle.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5335
    nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5336
    ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  5337
    "/ void
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5339
    "Modified: / 06-02-1998 / 03:12:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5340
    "Created: / 10-12-2010 / 15:11:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5341
    "Modified: / 03-11-2011 / 18:25:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5342
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5343
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5344
_java_lang_ClassLoader_defineClass1: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5345
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5346
    "
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5347
     private native Class defineClass1(String name, byte[] b, int off, int len,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5348
                                      ProtectionDomain pd, String source);"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5349
    
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5350
    | className  b  off  len  pd  source  bs  cls |
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5351
    className := Java as_ST_String: (nativeContext argAt: 1).
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5352
     "if name starts with java.* or package is signed by something else and we are not signed, throw security exception" "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject" "18.11. mh revised - they really test it against java., totally ignoring boot class path.. That surpsised me"
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5353
    (className startsWith: 'java.') ifTrue: [
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5354
        self throwSecurityExceptionWith: 'className=' , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5355
    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5356
    cls := ClassRegistry 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5357
                classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5358
                loader: nativeContext receiver
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5359
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5360
                    b := nativeContext argAt: 2.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5361
                    off := nativeContext argAt: 3.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5362
                    len := nativeContext argAt: 4.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5363
                    pd := nativeContext argAt: 5.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5364
                    source := Java as_ST_String: (nativeContext argAt: 6).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5365
                    (off = 0 and: [ len = b size ]) ifTrue: [ bs := b readStream ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5366
                        bs := (b copyFrom: off + 1 to: off + len) readStream
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5367
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5368
                    [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5369
                        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5370
                            do: [ cls := JavaClassReader readStream: bs. ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5371
                    ] on: JavaClassReader invalidClassFormatSignal
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5372
                            do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5373
                        :ex | 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5374
                        self throwClassFormatError: ex description.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5375
                        ^ nil.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5376
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5377
                    self assert: cls classLoader == nativeContext receiver.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5378
                     "FIXME: What to do with source?"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5379
                    cls.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5380
                ].
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5381
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5382
        do: [ cls resolveAll. ]."
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5383
    ^ self reflection javaClassObjectForClass: cls.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5384
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5385
    "Modified: / 30-10-2011 / 21:46:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5386
    "Modified: / 08-12-2011 / 20:56:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5387
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5388
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5389
_java_lang_ClassLoader_findBootstrapClass: nativeContext 
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5390
    <javanative: 'java/lang/ClassLoader' name: 'findBootstrapClass'>
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5391
    "Return class loaded by bootstrap (primordial) classloader or null.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5392
     See OpenJDK, file src/jdk7/hostspot/src/share/vm/prims/jvm.cpp"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5393
    
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5394
    | nm  class |
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5395
    nm := Java as_ST_String: (nativeContext argAt: 1).
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5396
    class := ClassRegistry 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5397
                classForName: nm asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5398
                loader: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5399
                ifAbsentPut: [ class := JavaVM usePrimordialCLToLoadClassNamed: nm. ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5400
         
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5401
    ^ class notNil 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5402
        ifTrue: [ self reflection javaClassObjectForClass: class ]
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5403
        ifFalse: [ self throwClassNotFoundException: nm ].
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5404
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5405
    "Modified: / 30-10-2011 / 21:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5406
    "Modified: / 02-11-2011 / 20:13:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5407
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5408
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5409
_java_lang_ClassLoader_findLoadedClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5410
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5411
    <javanative: 'java/lang/ClassLoader' name: 'findLoadedClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5412
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5413
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5414
    Return java class object for class with given name
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5415
    loaded by the receiver or null if not found.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5416
    See OpenJDK:
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5417
        src/jdk7/hostspot/src/share/vm/classfile/systemDictionary.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5418
        src/jdk7/hostspot/src/share/vm/prims/jvm.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5419
        
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5420
    "        
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5421
    | nm class |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5422
    nm := Java as_ST_String: (nativeContext argAt:1).
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5423
    class := ClassRegistry classNamed: nm asSlashedJavaClassName loader: nativeContext receiver.
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5424
    
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5425
    ^class notNil ifTrue: [
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5426
        self reflection javaClassObjectForClass:class
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5427
    ] ifFalse:[
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5428
        nil
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5429
    ]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  5430
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5431
    "Modified: / 30-10-2011 / 21:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5432
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5433
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5434
_java_lang_ClassLoader_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5435
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5436
    <javanative: 'java/lang/ClassLoader' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5438
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5439
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5441
    "Created: / 09-11-2010 / 20:55:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5442
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5443
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5444
_java_lang_ClassLoader_resolveClass0: nativeContext 
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5445
    <javanative: 'java/lang/ClassLoader' name: 'resolveClass0'>
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  5446
    "resolve a new class as previously created by defineClass0"
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5447
    "or to be more precise - link class"
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5448
    
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5449
    | jClassLoader  jCls  cls |
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5450
    jClassLoader := nativeContext receiver.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5451
    jCls := nativeContext argAt: 1.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5452
    jCls isNil ifTrue: [
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5453
        self throwNullPointerException.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5454
        ^ nil
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5455
    ].
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  5456
    cls := self reflection classForJavaClassObject: jCls.
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5457
    self assert: cls notNil.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5458
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5459
     do: [ cls resolveAll. ].
1150
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  5460
    ^ cls.
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  5461
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5462
    "
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5463
        Links the specified class.  This (misleadingly named) method may be
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5464
        * used by a class loader to link a class.  If the class <tt>c</tt> has
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5465
        * already been linked, then this method simply returns. Otherwise, the
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5466
        * class is linked as described in the Execution chapter of the <a
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5467
        * href=http://java.sun.com/docs/books/jls/>Java Language
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5468
        * Specification</a>.
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5469
        * </p>
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5470
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5471
        * @param  c
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5472
        *         The class to link
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5473
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5474
        * @throws  NullPointerException
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  5475
         *          If <tt>c</tt> is <tt>null</tt>."
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5476
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5477
    "Created: / 07-01-1998 / 13:12:27 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5478
    "Modified: / 20-10-1998 / 19:01:57 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5479
    "Modified: / 28-01-2011 / 15:28:18 / Marcel Hlopko <hlopik@gmail.com>"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  5480
    "Modified: / 14-09-2011 / 22:14:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  5481
    "Modified: / 08-12-2011 / 20:52:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5482
!
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  5483
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5484
_java_lang_Class_desiredAssertionStatus0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5485
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5486
    <javanative: 'java/lang/Class' name: 'desiredAssertionStatus0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5487
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5488
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5489
    ^AssertionsEnabled == true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5490
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5491
    "Created: / 24-11-2010 / 08:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5492
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5493
1205
vranyj1
parents: 1204
diff changeset
  5494
_java_lang_Class_forName0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5495
    <javanative: 'java/lang/Class' name: 'forName0'>
1205
vranyj1
parents: 1204
diff changeset
  5496
    |nm initialize loader class descriptor|
vranyj1
parents: 1204
diff changeset
  5497
vranyj1
parents: 1204
diff changeset
  5498
    nm := Java as_ST_String:(aJavaContext argAt:1).
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5499
     "Using Class.forName() to get a primitive type is not allowed"
1205
vranyj1
parents: 1204
diff changeset
  5500
    (nm size == 1 and:[JavaDescriptor baseTypes includesKey:nm first]) ifTrue:[
vranyj1
parents: 1204
diff changeset
  5501
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  5502
    ].
vranyj1
parents: 1204
diff changeset
  5503
    (JavaDescriptor baseTypesByTypeName includesKey:nm) ifTrue:[
vranyj1
parents: 1204
diff changeset
  5504
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  5505
    ].
vranyj1
parents: 1204
diff changeset
  5506
    initialize := aJavaContext argAt:2.
vranyj1
parents: 1204
diff changeset
  5507
    loader := aJavaContext argAt:3.
vranyj1
parents: 1204
diff changeset
  5508
    JavaClassReader classLoaderQuerySignal answer:loader do:[
vranyj1
parents: 1204
diff changeset
  5509
        (nm first == $[) ifTrue:[
vranyj1
parents: 1204
diff changeset
  5510
            |nms|
vranyj1
parents: 1204
diff changeset
  5511
vranyj1
parents: 1204
diff changeset
  5512
            nms := nm readStream.
vranyj1
parents: 1204
diff changeset
  5513
            descriptor := JavaDescriptor readFrom:nms
vranyj1
parents: 1204
diff changeset
  5514
                        onError:[^ self throwClassNotFoundException:nm].
vranyj1
parents: 1204
diff changeset
  5515
            nms atEnd ifFalse:[
vranyj1
parents: 1204
diff changeset
  5516
                ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  5517
            ].
vranyj1
parents: 1204
diff changeset
  5518
            class := descriptor javaClass.
vranyj1
parents: 1204
diff changeset
  5519
        ] ifFalse:[
vranyj1
parents: 1204
diff changeset
  5520
            class := self classForName:nm
vranyj1
parents: 1204
diff changeset
  5521
        ]
vranyj1
parents: 1204
diff changeset
  5522
    ].
vranyj1
parents: 1204
diff changeset
  5523
    class isNil ifTrue:[
vranyj1
parents: 1204
diff changeset
  5524
        ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  5525
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5526
    ((initialize ~~ 0) 
1205
vranyj1
parents: 1204
diff changeset
  5527
        and:[class isJavaArrayClass not and:[class isJavaPrimitiveType not]]) 
vranyj1
parents: 1204
diff changeset
  5528
            ifTrue:[
vranyj1
parents: 1204
diff changeset
  5529
                [class classInit] on:Error do:[self throwExceptionInInitializerError:nm]
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5530
            ].
1205
vranyj1
parents: 1204
diff changeset
  5531
    ^ JavaVM javaClassObjectForClass:class.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5533
    "Created: / 24-11-2010 / 09:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
vranyj1
parents: 1062
diff changeset
  5534
    "Modified: / 30-10-2011 / 23:30:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  5535
    "Modified: / 02-11-2011 / 19:12:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1205
vranyj1
parents: 1204
diff changeset
  5536
    "Modified (format): / 03-12-2011 / 10:49:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5537
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5539
_java_lang_Class_getClassLoader0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5540
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5541
    <javanative: 'java/lang/Class' name: 'getClassLoader0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5542
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5543
        "get a classes loader"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5544
    
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5545
    |jClass cls clc loader |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5546
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5547
    jClass := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5548
    cls := self reflection classForJavaClassObject:jClass.
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5549
    cls isJavaPrimitiveType ifTrue:[^nil].
915
vranyj1
parents: 914
diff changeset
  5550
    [ cls isJavaArrayClass ] whileTrue:[cls := cls javaComponentClass].
1063
vranyj1
parents: 1062
diff changeset
  5551
    cls isJavaPrimitiveType ifTrue:[^nil].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5552
    loader := cls classLoader.
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5553
"/    loader isNil ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5554
"/        cls := (Java at:'java/lang/ClassLoader').
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5555
"/        clc notNil ifTrue:[loader := clc instVarNamed: #scl].
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5556
"/    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5557
    ^ loader
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5559
    "Created: / 25-10-2010 / 22:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5560
    "Modified: / 28-01-2011 / 15:18:54 / Marcel Hlopko <hlopik@gmail.com>"
1063
vranyj1
parents: 1062
diff changeset
  5561
    "Modified: / 30-10-2011 / 23:24:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5562
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5563
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5564
_java_lang_Class_getComponentType: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5566
    <javanative: 'java/lang/Class' name: 'getComponentType'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5568
        |cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5570
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5571
    cls isJavaPrimitiveType ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5572
        self breakPoint:#jv.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5573
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5574
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5575
    ^ self javaClassObjectForClass:cls javaComponentClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5577
    "Created: / 12-11-1998 / 18:54:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5578
    "Modified: / 20-12-2010 / 22:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5579
    "Modified: / 28-01-2011 / 15:18:59 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5580
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5582
_java_lang_Class_getConstantPool: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5584
    <javanative: 'java/lang/Class' name: 'getConstantPool'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5585
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5586
        | class |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5588
    class := self reflection classForJavaClassObject:aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5589
    ^ self reflection javaConstantPoolObjectFor:class constantPool.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5590
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5591
    "Created: / 21-12-2010 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5592
    "Modified: / 28-02-2011 / 18:05:13 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5593
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5594
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5595
_java_lang_Class_getDeclaredClasses0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5596
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5597
    <javanative: 'java/lang/Class' name: 'getDeclaredClasses0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5598
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5599
    | class innerPrefix inners |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5600
    class := self reflection classForJavaClassObject: nativeContext receiver.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5601
    innerPrefix := class name , '$'.                
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5602
    inners := Set new.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5603
    JAVA allClassesDo:[:cls|
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5604
        (cls name startsWith: innerPrefix) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5605
            inners add: (self reflection javaClassObjectForClass: cls)
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5606
        ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5607
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5608
    ^(Java at: 'java.lang.Class') javaArrayClass withAll: inners
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5609
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5610
    "Modified: / 01-09-2011 / 00:09:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5611
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5612
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5613
_java_lang_Class_getDeclaredConstructors0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5614
    <javanative: 'java/lang/Class' name: 'getDeclaredConstructors0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5615
    |class publicOnly constructors|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5616
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5617
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5618
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5619
        ^ (self classForName:'java.lang.reflect.Constructor') javaArrayClass new:0
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5620
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5621
    publicOnly := (aJavaContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5622
    constructors := OrderedCollection new.
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5623
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5624
    class selectorsAndMethodsDo:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5625
            [:selector :method | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5626
            (method isJavaMethod and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5627
                    [ (selector at:1) == $< and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5628
                            [ (selector startsWith:'<init>(') 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5629
                                and:[ publicOnly not or:[ method isPublic ] ] ] ]) 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5630
                ifTrue:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5631
                    [ constructors add:(self reflection javaConstructorObjectForMethod:method) ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5632
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5633
    ^ (self classForName:'java.lang.reflect.Constructor') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5634
        withAll:constructors
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5635
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5636
    "Created: / 24-11-2010 / 09:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5637
    "Modified: / 09-02-2011 / 01:24:03 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5638
    "Modified: / 01-09-2011 / 09:37:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5639
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5640
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5641
_java_lang_Class_getDeclaredFields0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5642
    <javanative: 'java/lang/Class' name: 'getDeclaredFields0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5643
    |javaClassObject class fields publicOnly|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5644
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5645
    class := self reflection 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5646
                classForJavaClassObject:(javaClassObject := aJavaContext argAt:0).
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5647
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5648
        ^(self classForName:'java.lang.reflect.Field') javaArrayClass new:0.
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5649
    ].
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5650
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5651
    publicOnly := (aJavaContext argAt:1) == 1.
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  5652
    fields := class fields , class staticFields.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5653
    publicOnly ifTrue:[ fields := fields select:[:f | f isPublic ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5654
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5655
    fields := fields 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5656
                collect:[:f | self javaFieldObjectForField:f in:javaClassObject ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5657
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5658
    ^ (self classForName:'java.lang.reflect.Field') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5659
        withAll:fields
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5661
    "Created: / 10-11-2010 / 16:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5662
    "Modified: / 28-01-2011 / 15:19:06 / Marcel Hlopko <hlopik@gmail.com>"
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5663
    "Modified: / 31-08-2011 / 22:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5664
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5665
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5666
_java_lang_Class_getDeclaredMethods0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5667
    <javanative: 'java/lang/Class' name: 'getDeclaredMethods0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5668
    |class publicOnly methods|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5669
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5670
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5671
    publicOnly := (aJavaContext argAt:1) == 1.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5672
    methods := OrderedCollection new.
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5673
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5674
        ^(self classForName:'java.lang.reflect.Method') javaArrayClass new:0
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5675
    ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5676
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5677
    class selectorsAndMethodsDo:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5678
            [:selector :method | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5679
            (method isJavaMethod and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5680
                    [ (selector at:1) ~~ $< and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5681
                            [ (selector startsWith:'<init>(') not 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5682
                                and:[ publicOnly not or:[ method isPublic ] ] ] ]) 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5683
                ifTrue:[ methods add:(self javaMethodObjectForMethod:method) ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  5684
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5685
    ^ (self classForName:'java.lang.reflect.Method') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5686
        withAll:methods asArray
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5687
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5688
    "Created: / 21-12-2010 / 22:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5689
    "Modified: / 28-01-2011 / 15:19:09 / Marcel Hlopko <hlopik@gmail.com>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
  5690
    "Modified: / 04-06-2011 / 17:07:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  5691
    "Modified: / 01-09-2011 / 09:40:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5692
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5693
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5694
_java_lang_Class_getDeclaringClass: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5695
    <javanative: 'java/lang/Class' name: 'getDeclaringClass'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5696
    "
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5697
     /**
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5698
     * If the class or interface represented by this {@code Class} object
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5699
     * is a member of another class, returns the {@code Class} object
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5700
     * representing the class in which it was declared.  This method returns
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5701
     * null if this class or interface is not a member of any other class.  If
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5702
     * this {@code Class} object represents an array class, a primitive
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5703
     * type, or void,then this method returns null.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5704
     *
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5705
     * @return the declaring class for this class
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5706
     * @since JDK1.1
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5707
     */"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5708
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5709
    | cls  enclosingClsName  enclosingCls |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5710
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5711
    cls := self reflection classForJavaClassObject: (nativeContext receiver).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5712
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5713
    (cls name includes: $$) ifFalse: [ ^ nil ].
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5714
    enclosingClsName := cls name copyTo: (cls name lastIndexOf: $$) - 1.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5715
    enclosingCls := self classForName: enclosingClsName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5716
    enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5717
    ^ self reflection javaClassObjectForClass: enclosingCls
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5718
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5719
    "Modified: / 13-08-2011 / 02:01:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5720
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5721
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5722
_java_lang_Class_getEnclosingMethod0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5723
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5724
    <javanative: 'java/lang/Class' name: 'getEnclosingMethod0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5725
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5726
    ^nil "/Not true"
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5727
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  5728
    "Modified: / 14-08-2011 / 20:05:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5729
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5730
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5731
_java_lang_Class_getGenericSignature: nativeContext
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5732
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5733
    <javanative: 'java/lang/Class' name: 'getGenericSignature'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5734
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5735
    |cls sig |
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5736
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5737
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5738
    (cls isJavaPrimitiveType or:[cls isJavaArrayClass]) ifTrue:[^nil].
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5739
    sig := cls signatureJ.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5740
    ^sig notNil ifTrue:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5741
        Java as_String: sig
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5742
    ] ifFalse:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5743
        nil
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5744
    ]
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5745
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5746
    "Modified: / 13-08-2011 / 02:19:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5747
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5748
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5749
_java_lang_Class_getInterfaces:nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5750
    <javanative: 'java/lang/Class' name: 'getInterfaces'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5751
    |jClass cls interfaces jInterfaces|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5753
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5754
    cls := self reflection classForJavaClassObject:jClass.
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5755
    cls isJavaPrimitiveType ifTrue:[
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5756
        ^ (self classForName:'java.lang.Class') javaArrayClass new 
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5757
    ].
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5758
    cls isJavaArrayClass ifTrue:[
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5759
        ^ (self classForName:'java.lang.Class') javaArrayClass        
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5760
            with:(self javaClassObjectForClass:(self classForName: 'java.lang.Cloneable'))
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5761
            with:(self javaClassObjectForClass:(self classForName: 'java.io.Serializable'))            
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5762
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5763
    interfaces := cls interfaces.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5764
    interfaces 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5765
        ifNil:[ ^ (self classForName:'java.lang.Class') javaArrayClass new ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5766
    jInterfaces := (self classForName:'java.lang.Class') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5767
                new:interfaces size.
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5768
    interfaces 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  5769
        withIndexDo:[:iface :idx | jInterfaces at:idx put:(self javaClassObjectForClass:iface) ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5770
    ^ jInterfaces
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5771
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5772
    "Modified: / 28-01-2011 / 15:19:11 / Marcel Hlopko <hlopik@gmail.com>"
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  5773
    "Modified: / 30-10-2011 / 20:04:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5774
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5775
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5776
_java_lang_Class_getModifiers: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5777
    <javanative: 'java/lang/Class' name: 'getModifiers'>
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5778
    | cls modifiers |
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  5779
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5780
    cls := (self reflection classForJavaClassObject: aJavaContext receiver).
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5781
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5782
        modifiers := ACC_ABSTRACT | ACC_FINAL | ACC_PUBLIC 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5783
    ] ifFalse: [ 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5784
        "According to OpenJDK JVM, strip ACC_SUPER"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5785
        modifiers := (cls accessFlags & ACC_SUPER bitInvert) & 16r7FFF.
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5786
        "JV@2011-10-30: It seems that private inner classes has no
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5787
         private bit set, sigh"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5788
        (modifiers & 16r0007) == 0 ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5789
            modifiers := modifiers | ACC_PRIVATE.
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5790
        ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5791
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5792
    ^modifiers
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5793
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5794
    "Created: / 12-11-1998 / 18:54:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5795
    "Modified: / 28-01-2011 / 15:19:14 / Marcel Hlopko <hlopik@gmail.com>"
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  5796
    "Modified: / 30-10-2011 / 17:26:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5797
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5799
_java_lang_Class_getName0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5801
    <javanative: 'java/lang/Class' name: 'getName0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5803
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5805
    class := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5806
    class := self reflection classForJavaClassObject:aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5807
    ^ self reflection 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5808
        javaStringObjectForString:class javaName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5809
        interned:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5810
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5811
    "Created: / 22-11-2010 / 17:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5812
    "Modified: / 09-02-2011 / 01:06:53 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5813
    "Modified: / 25-02-2011 / 19:00:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5814
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5815
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5816
_java_lang_Class_getPrimitiveClass: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5817
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5818
    <javanative: 'java/lang/Class' name: 'getPrimitiveClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5819
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5820
        "get a primitive class by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5821
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5822
    |jClassName className|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5823
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5824
    jClassName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5825
    className := Java as_ST_String:jClassName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5826
    (JavaDescriptor baseTypesByTypeName keys includes: className)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5827
        ifFalse:[self throwClassNotFoundException:className].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5828
    ^self reflection javaClassObjectForClassNamed: className
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5829
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5830
    "Created: / 04-01-1998 / 00:46:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5831
    "Modified: / 28-01-2011 / 15:30:45 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5832
    "Modified: / 03-02-2011 / 21:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5833
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5834
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5835
_java_lang_Class_getProtectionDomain0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5836
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5837
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5838
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5839
    ^(self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5840
        protectionDomain
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5841
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5842
    "Modified: / 10-08-2011 / 15:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5843
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5844
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5845
_java_lang_Class_getRawAnnotations: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5846
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5847
    <javanative: 'java/lang/Class' name: 'getRawAnnotations'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5848
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5849
    |class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5850
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5851
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5852
    class isJavaArrayClass ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5853
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5854
    ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5855
    class isJavaPrimitiveType ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5856
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5857
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5858
    ^ class runtimeVisibleAnnotationsAsBytesOrNil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5859
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5860
    "Created: / 21-12-2010 / 19:35:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5861
    "Modified: / 28-01-2011 / 15:19:20 / Marcel Hlopko <hlopik@gmail.com>"
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  5862
    "Modified: / 05-12-2011 / 00:50:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5863
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5864
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5865
_java_lang_Class_getSuperclass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5866
    <javanative: 'java/lang/Class' name: 'getSuperclass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5867
    "return a classes superclass"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5868
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5869
    | jClass  cls  superCls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5870
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5871
    jClass := nativeContext receiver.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5872
    cls := self reflection classForJavaClassObject: jClass.
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5873
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5874
    cls isJavaPrimitiveType ifTrue: [ ^ nil ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5875
    cls isJavaArrayClass ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5876
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5877
    ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5878
    cls isInterface ifTrue: [ ^ nil ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5879
    superCls := cls superclass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5880
    superCls == JavaObject ifTrue: [ ^ nil. ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5881
    ^ self javaClassObjectForClass: superCls
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5882
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5883
    "Created: / 12-01-1998 / 12:38:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5884
    "Modified: / 04-02-1998 / 14:51:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5885
    "Modified: / 28-01-2011 / 14:12:47 / Marcel Hlopko <hlopik@gmail.com>"
915
vranyj1
parents: 914
diff changeset
  5886
    "Modified: / 15-08-2011 / 09:09:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5887
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5888
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5889
_java_lang_Class_isArray: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5891
    <javanative: 'java/lang/Class' name: 'isArray'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5893
        ^ (self reflection classForJavaClassObject:nativeContext receiver) isJavaArrayClass 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5894
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5895
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5896
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5897
    "Created: / 12-11-1998 / 18:54:24 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5898
    "Modified: / 20-12-2010 / 23:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5899
    "Modified: / 28-01-2011 / 15:19:24 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5900
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5901
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5902
_java_lang_Class_isAssignableFrom: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5903
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5904
    <javanative: 'java/lang/Class' name: 'isAssignableFrom'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5905
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5906
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5907
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5908
     * Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5909
     * {@code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5910
     * superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5911
     * {@code Class} parameter. It returns {@code true} if so;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5912
     * otherwise it returns {@code false}. If this {@code Class}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5913
     * object represents a primitive type, this method returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5914
     * {@code true} if the specified {@code Class} parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5915
     * exactly this {@code Class} object; otherwise it returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5916
     * {@code false}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5917
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5918
     * <p> Specifically, this method tests whether the type represented by the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5919
     * specified {@code Class} parameter can be converted to the type
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5920
     * represented by this {@code Class} object via an identity conversion
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5921
     * or via a widening reference conversion. See <em>The Java Language
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5922
     * Specification</em>, sections 5.1.1 and 5.1.4 , for details.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5923
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5924
     * @param cls the {@code Class} object to be checked
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5925
     * @return the {@code boolean} value indicating whether objects of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5926
     * type {@code cls} can be assigned to objects of this class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5927
     * @exception NullPointerException if the specified Class parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5928
     *            null.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5929
     * @since JDK1.1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5930
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5931
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5932
    | clsObj me other |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5933
    clsObj := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5934
    clsObj ifNil:[^self throwNullPointerException].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5935
    me := self reflection classForJavaClassObject: nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5936
    other := self reflection classForJavaClassObject: clsObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5937
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5938
    "/    Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5939
    "/    @code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5940
    "/    superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5941
    "/    {@code Class} parameter.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5943
    ^(other includesBehavior: me)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5944
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5945
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5946
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5947
    "Created: / 12-11-1998 / 18:54:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5948
    "Modified: / 05-02-2011 / 23:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5949
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5950
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5951
_java_lang_Class_isInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5952
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5953
    <javanative: 'java/lang/Class' name: 'isInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5954
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5955
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5956
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5957
     * Determines if the specified {@code Object} is assignment-compatible
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5958
     * with the object represented by this {@code Class}.  This method is
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5959
     * the dynamic equivalent of the Java language {@code instanceof}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5960
     * operator. The method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5961
     * {@code Object} argument is non-null and can be cast to the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5962
     * reference type represented by this {@code Class} object without
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5963
     * raising a {@code ClassCastException.} It returns {@code false}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5964
     * otherwise.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5965
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5966
     * <p> Specifically, if this {@code Class} object represents a
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5967
     * declared class, this method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5968
     * {@code Object} argument is an instance of the represented class (or
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5969
     * of any of its subclasses); it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5970
     * this {@code Class} object represents an array class, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5971
     * returns {@code true} if the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5972
     * can be converted to an object of the array class by an identity
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5973
     * conversion or by a widening reference conversion; it returns
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5974
     * {@code false} otherwise. If this {@code Class} object
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5975
     * represents an interface, this method returns {@code true} if the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5976
     * class or any superclass of the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5977
     * implements this interface; it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5978
     * this {@code Class} object represents a primitive type, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5979
     * returns {@code false}.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5980
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5981
     * @param   obj the object to check
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5982
     * @return  true if {@code obj} is an instance of this class
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5983
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5984
     * @since JDK1.1
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5985
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5986
    public native boolean isInstance(Object obj);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5987
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5988
    
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5989
    |jClass cls obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5990
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5991
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5992
    obj isNil ifTrue:[^ 0].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5993
    jClass := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5994
    cls := self reflection classForJavaClassObject:jClass.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5995
    ^self _INSTANCEOF:obj _:cls
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5996
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5997
    "Modified: / 09-02-1998 / 14:56:23 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5998
    "Modified: / 28-01-2011 / 14:12:42 / Marcel Hlopko <hlopik@gmail.com>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5999
    "Modified: / 25-02-2011 / 18:37:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6000
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6001
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6002
_java_lang_Class_isInterface: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6004
    <javanative: 'java/lang/Class' name: 'isInterface'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6006
        "return true, if this class is an interface"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6007
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6008
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6009
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6010
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6011
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6012
    cls isJavaClass ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6013
        ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6014
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6015
    cls isInterface ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6016
        ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6017
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6018
    ^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6019
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6020
    "Created: / 12-01-1998 / 12:37:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6021
    "Modified: / 28-01-2011 / 14:12:35 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6022
    "Modified: / 03-02-2011 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6023
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6025
_java_lang_Class_isPrimitive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6026
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6027
    <javanative: 'java/lang/Class' name: 'isPrimitive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6028
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6029
        "return true, if this class is builtin primitive class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6030
     (i.e. byteArray, array, string etc."
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6031
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6032
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6034
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6035
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6036
    ^cls isJavaPrimitiveType 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6037
        ifTrue:[1"true"]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6038
        ifFalse:[0"false"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6039
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6040
    "Created: / 09-02-1998 / 14:46:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6041
    "Modified: / 28-01-2011 / 14:12:30 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6042
    "Modified: / 04-02-2011 / 11:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6043
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6045
_java_lang_Class_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6046
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6047
    <javanative: 'java/lang/Class' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6048
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6049
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6050
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6052
    "Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6053
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6054
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6055
_java_lang_Class_setProtectionDomain0: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6056
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6057
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6058
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6059
    (self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6060
        protectionDomain: (nativeContext argAt:1)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6061
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6062
    "Created: / 10-08-2011 / 15:20:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6063
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6064
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6065
_java_lang_Double_doubleToRawLongBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6066
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6067
    <javanative: 'java/lang/Double' name: 'doubleToRawLongBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6069
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6070
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6071
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6072
     * according to the IEEE 754 floating-point 'double
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6073
     * format' bit layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6074
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6075
     * <p>Bit 63 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6076
     * {@code 0x8000000000000000L}) represents the sign of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6077
     * floating-point number. Bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6078
     * 62-52 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6079
     * {@code 0x7ff0000000000000L}) represent the exponent. Bits 51-0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6080
     * (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6081
     * {@code 0x000fffffffffffffL}) represent the significand
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6082
     * (sometimes called the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6083
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6084
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6085
     * {@code 0x7ff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6086
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6087
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6088
     * {@code 0xfff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6089
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6090
     * <p>If the argument is NaN, the result is the {@code long}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6091
     * integer representing the actual NaN value.  Unlike the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6092
     * {@code doubleToLongBits} method,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6093
     * {@code doubleToRawLongBits} does not collapse all the bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6094
     * patterns encoding a NaN to a single 'canonical' NaN
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6095
     * value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6096
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6097
     * <p>In all cases, the result is a {@code long} integer that,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6098
     * when given to the {@link #longBitsToDouble(long)} method, will
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6099
     * produce a floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6100
     * {@code doubleToRawLongBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6101
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6102
     * @param   value   a {@code double} precision floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6103
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6104
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6105
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6106
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6107
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6108
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6109
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6110
    (f = -0.0) ifTrue:[^(1 bitShift: 63)].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6111
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6112
    b := ByteArray streamContents:[:s|Float storeBinaryIEEEDouble:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6113
    ^ LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6115
    "Created: / 10-11-2010 / 14:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6116
    "Modified: / 07-08-2011 / 21:43:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6117
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6118
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6119
_java_lang_Double_longBitsToDouble: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6120
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6121
    <javanative: 'java/lang/Double' name: 'longBitsToDouble'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6122
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6123
        |i aFloat|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6124
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6125
    i := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6126
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6127
    aFloat := Float new.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6128
    UninterpretedBytes isBigEndian ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6129
	aFloat basicAt:1 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6130
	aFloat basicAt:2 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6131
	aFloat basicAt:3 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6132
	aFloat basicAt:4 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6133
	aFloat basicAt:5 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6134
	aFloat basicAt:6 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6135
	aFloat basicAt:7 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6136
	aFloat basicAt:8 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6137
    ] ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6138
	aFloat basicAt:1 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6139
	aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6140
	aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6141
	aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6142
	aFloat basicAt:5 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6143
	aFloat basicAt:6 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6144
	aFloat basicAt:7 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6145
	aFloat basicAt:8 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6146
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6147
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6148
    ^ aFloat.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6149
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6150
    "Created: / 4.1.1998 / 01:45:00 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6151
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6153
_java_lang_Float_floatToRawIntBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6155
    <javanative: 'java/lang/Float' name: 'floatToRawIntBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6157
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6158
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6159
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6160
     * according to the IEEE 754 floating-point 'single format' bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6161
     * layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6162
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6163
     * <p>Bit 31 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6164
     * {@code 0x80000000}) represents the sign of the floating-point
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6165
     * number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6166
     * Bits 30-23 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6167
     * {@code 0x7f800000}) represent the exponent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6168
     * Bits 22-0 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6169
     * {@code 0x007fffff}) represent the significand (sometimes called
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6170
     * the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6171
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6172
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6173
     * {@code 0x7f800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6174
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6175
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6176
     * {@code 0xff800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6177
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6178
     * <p>If the argument is NaN, the result is the integer representing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6179
     * the actual NaN value.  Unlike the {@code floatToIntBits}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6180
     * method, {@code floatToRawIntBits} does not collapse all the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6181
     * bit patterns encoding a NaN to a single 'canonical'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6182
     * NaN value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6183
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6184
     * <p>In all cases, the result is an integer that, when given to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6185
     * {@link #intBitsToFloat(int)} method, will produce a
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6186
     * floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6187
     * {@code floatToRawIntBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6188
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6189
     * @param   value   a floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6190
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6191
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6192
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6193
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6194
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6195
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6196
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6197
    (f = -0.0) ifTrue:[^(1 bitShift: 31) ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6198
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6199
    b := ByteArray streamContents:[:s|ShortFloat storeBinaryIEEESingle:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6200
    ^ (LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not) compressed
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6201
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6202
    "Created: / 09-11-2010 / 20:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6203
    "Modified: / 07-08-2011 / 21:45:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6204
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6205
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6206
_java_lang_Float_intBitsToFloat: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6207
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6208
    <javanative: 'java/lang/Float' name: 'intBitsToFloat(I)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6209
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6210
    |i aFloat|
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6211
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6212
    i := nativeContext argAt:1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6213
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6214
    aFloat := ShortFloat basicNew.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6215
    UninterpretedBytes isBigEndian ifTrue:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6216
        aFloat basicAt:1 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6217
        aFloat basicAt:2 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6218
        aFloat basicAt:3 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6219
        aFloat basicAt:4 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6220
    ] ifFalse:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6221
        aFloat basicAt:1 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6222
        aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6223
        aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6224
        aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6225
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6226
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6227
    ^ aFloat.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6228
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6229
    "Modified: / 13-09-2011 / 20:05:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6230
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6231
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6232
_java_lang_Object_clone: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6234
    <javanative: 'java/lang/Object' name: 'clone'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6236
        "clone an object"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6238
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6240
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6241
    rslt := o shallowCopy.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6242
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6244
    "Created: / 4.1.1998 / 19:39:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6245
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6246
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6247
_java_lang_Object_getClass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6248
    <javanative: 'java/lang/Object' name: 'getClass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6249
    "return an objects class"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6250
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6251
    | o  cls  jClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6253
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6254
    cls := o class.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6255
    jClass := self javaClassObjectForClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6256
    ^ jClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6258
    "Created: / 6.1.1998 / 18:28:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6259
    "Modified: / 23.1.1998 / 17:48:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6260
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6261
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6262
_java_lang_Object_hashCode: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6264
    <javanative: 'java/lang/Object' name: 'hashCode'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6266
        "identityHash"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6268
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6270
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6271
    rslt := o identityHash.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6272
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6274
    "Created: / 4.1.1998 / 19:40:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6275
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6276
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6277
_java_lang_Object_notify: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6278
    <javanative: 'java/lang/Object' name: 'notify'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6279
    "wakeup"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6280
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6281
    self notify: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6282
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6283
    "Created: / 06-01-1998 / 21:09:26 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6284
    "Modified: / 22-11-2011 / 13:24:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6285
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6286
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6287
_java_lang_Object_notifyAll: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6288
    <javanative: 'java/lang/Object' name: 'notifyAll'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6289
    self notifyAll: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6290
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6291
    "Created: / 03-01-1998 / 03:06:56 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6292
    "Modified: / 22-11-2011 / 13:27:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6293
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6294
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6295
_java_lang_Object_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6296
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6297
    <javanative: 'java/lang/Object' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6299
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6300
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6301
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6302
    "Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6303
    "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6304
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6305
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6306
_java_lang_Object_wait: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6307
    <javanative: 'java/lang/Object' name: 'wait'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6308
    | tmo  handle |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6309
    handle := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6310
    tmo := nativeContext argAt: 1.    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6311
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6312
            waitOn: handle forTimeout: tmo
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6313
            state: #javaWait.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6315
    "Modified: / 30-12-1998 / 19:20:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6316
    "Modified: / 01-05-2011 / 13:26:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6317
    "Modified: / 22-11-2011 / 13:17:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6318
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6319
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6320
_java_lang_Package_getSystemPackage0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6321
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6322
    <javanative: 'java/lang/Package' name: 'getSystemPackage0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6323
909
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  6324
    "Based on code on OpenJDK, it is ok to return nil here:"
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  6325
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  6326
    ^nil
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  6327
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  6328
    "Modified: / 12-08-2011 / 16:00:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6329
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6330
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6331
_java_lang_ProcessEnvironment_environ: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6332
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6333
    <javanative: 'java/lang/ProcessEnvironment' name: 'environ'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6334
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6335
    | env jenv i|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6336
    env := OperatingSystem getEnvironment.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6337
    jenv :=  ByteArray javaArrayClass new: env size * 2.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6338
    i := 1.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6339
    env keysAndValuesDo:
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6340
        [:name :value|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6341
        jenv 
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6342
            at: i   put: name  asByteArray;
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6343
            at: i+1 put: value asByteArray.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6344
        i := i + 2].
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6345
    ^jenv
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6346
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  6347
    "Modified: / 25-06-2011 / 08:57:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6348
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6349
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6350
_java_lang_ProcessEnvironment_environmentBlock: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6351
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6352
    <javanative: 'java/lang/ProcessEnvironment' name: 'environmentBlock()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6353
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6354
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6355
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6356
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6357
_java_lang_Runtime_gc: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6358
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6359
    <javanative: 'java/lang/Runtime' name: 'gc'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6360
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6361
        "Runs the garbage collector.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6362
     Ignored, since the ST-gc runs all the time."
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6363
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6364
    ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6365
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6366
    "Modified: / 12.1.1998 / 12:58:32 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6367
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6368
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6369
_java_lang_Runtime_runFinalization0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6370
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6371
    <javanative: 'java/lang/Runtime' name: 'runFinalization0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6372
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6373
    Smalltalk garbageCollect
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6374
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6375
    "Modified: / 08-08-2011 / 17:48:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6376
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6377
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6378
_java_lang_SecurityManager_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6379
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6380
    <javanative: 'java/lang/SecurityManager' name: 'getClassContext'>
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6381
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6382
    /**
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6383
     * Returns the current execution stack as an array of classes.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6384
     * <p>
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6385
     * The length of the array is the number of methods on the execution
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6386
     * stack. The element at index <code>0</code> is the class of the
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6387
     * currently executing method, the element at index <code>1</code> is
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6388
     * the class of that method's caller, and so on.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6389
     *
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6390
     * @return  the execution stack.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6391
     */
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6392
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6393
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6394
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6395
    | classes ctx jclasses |
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6396
    classes := OrderedCollection new.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6397
    ctx := thisContext.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6398
    [ ctx notNil ] whileTrue: [
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6399
        ctx isJavaContext ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6400
            classes add: ctx method javaClass.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6401
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6402
        ctx := ctx sender.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6403
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6404
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6405
    jclasses := (self classForName:'java.lang.Class') javaArrayClass new: classes size.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6406
    1 to: classes size do:[:i|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6407
        jclasses at: i put: (self reflection javaClassObjectForClass: (classes at: i)).
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6408
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6409
    ^jclasses
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6410
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6411
    "Created: / 12-11-1998 / 18:56:06 / cg"
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  6412
    "Modified: / 15-11-2011 / 00:27:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6413
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6414
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6415
_java_lang_Shutdown_halt0: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6416
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6417
    <javanative: 'java/lang/Shutdown' name: 'halt0'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6418
1209
vranyj1
parents: 1205
diff changeset
  6419
    self breakPoint: #jv.
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  6420
    AbortOperationRequest raise
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  6421
1209
vranyj1
parents: 1205
diff changeset
  6422
    "Modified: / 04-12-2011 / 09:57:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6423
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6424
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6425
_java_lang_StrictMath_cbrt: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6426
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6427
    <javanative: 'java/lang/StrictMath' name: 'cbrt'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6428
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6429
    ^ JavaMathSupport cbrt: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6430
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6431
    "Modified: / 07-09-2011 / 17:34:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6432
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6433
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6434
_java_lang_StrictMath_cos: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6435
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6436
    <javanative: 'java/lang/StrictMath' name: 'cos'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6437
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6438
    ^ JavaMathSupport cos: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6439
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6440
    "Modified: / 07-09-2011 / 17:34:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6441
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6442
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6443
_java_lang_StrictMath_cosh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6444
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6445
    <javanative: 'java/lang/StrictMath' name: 'cosh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6446
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6447
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6448
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6449
     * Returns the hyperbolic cosine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6450
     * The hyperbolic cosine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6451
     * (<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6452
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6453
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6454
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6455
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6456
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6457
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6458
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6459
     * <li>If the argument is infinite, then the result is positive
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6460
     * infinity.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6461
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6462
     * <li>If the argument is zero, then the result is {@code 1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6463
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6464
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6465
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6466
     * @param   x The number whose hyperbolic cosine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6467
     * @return  The hyperbolic cosine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6468
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6469
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6470
    public static native double cosh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6471
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6472
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6473
    ^JavaMathSupport cosh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6474
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6475
    "Modified: / 06-09-2011 / 19:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6476
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6477
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6478
_java_lang_StrictMath_expm1: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6479
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6480
    <javanative: 'java/lang/StrictMath' name: 'expm1'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6481
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6482
    ^ JavaMathSupport expm1: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6483
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6484
    "Modified: / 07-09-2011 / 17:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6485
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6486
895
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  6487
_java_lang_StrictMath_floor: nativeContext
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  6488
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  6489
    <javanative: 'java/lang/StrictMath' name: 'floor'>
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  6490
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6491
   ^ JavaMathSupport floor: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6492
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6493
    "Modified: / 07-09-2011 / 17:33:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6494
!
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6495
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6496
_java_lang_StrictMath_pow: nativeContext
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6497
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6498
    <javanative: 'java/lang/StrictMath' name: 'pow(DD)D'>
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6499
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6500
    ^JavaMathSupport pow: (nativeContext argAt:1) to: (nativeContext argAt:3)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6501
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6502
    "Modified: / 07-09-2011 / 17:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6503
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6504
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6505
_java_lang_StrictMath_sin: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6506
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6507
    <javanative: 'java/lang/StrictMath' name: 'cos'>
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6508
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6509
    ^ JavaMathSupport sin: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6510
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6511
    "Modified: / 07-09-2011 / 17:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6512
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6513
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6514
_java_lang_StrictMath_sinh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6515
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6516
    <javanative: 'java/lang/StrictMath' name: 'sinh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6517
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6518
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6519
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6520
     * Returns the hyperbolic sine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6521
     * The hyperbolic sine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6522
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6523
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6524
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6525
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6526
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6527
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6528
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6529
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6530
     * <li>If the argument is infinite, then the result is an infinity
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6531
     * with the same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6532
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6533
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6534
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6535
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6536
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6537
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6538
     * @param   x The number whose hyperbolic sine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6539
     * @return  The hyperbolic sine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6540
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6541
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6542
    public static native double sinh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6543
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6544
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6545
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6546
    ^ JavaMathSupport sinh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6547
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6548
    "Modified: / 06-09-2011 / 19:36:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6549
    "Modified (format): / 07-09-2011 / 17:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6550
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6551
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6552
_java_lang_StrictMath_tanh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6553
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6554
    <javanative: 'java/lang/StrictMath' name: 'tanh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6555
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6556
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6557
     * Returns the hyperbolic tangent of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6558
     * The hyperbolic tangent of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6559
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/(<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>),
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6560
     * in other words, {@linkplain Math#sinh
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6561
     * sinh(<i>x</i>)}/{@linkplain Math#cosh cosh(<i>x</i>)}.  Note
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6562
     * that the absolute value of the exact tanh is always less than
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6563
     * 1.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6564
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6565
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6566
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6567
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6568
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6569
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6570
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6571
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6572
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6573
     * <li>If the argument is positive infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6574
     * {@code +1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6575
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6576
     * <li>If the argument is negative infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6577
     * {@code -1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6578
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6579
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6580
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6581
     * @param   x The number whose hyperbolic tangent is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6582
     * @return  The hyperbolic tangent of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6583
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6584
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6585
    public static native double tanh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6586
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  6587
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6588
    ^ JavaMathSupport tanh: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6589
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  6590
    "Modified: / 07-09-2011 / 17:32:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6591
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6592
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6593
_java_lang_String_intern: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6594
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6595
    <javanative: 'java/lang/String' name: 'intern'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6596
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6597
        |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6598
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6599
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6600
    ^ Java intern:jString
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6601
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6602
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6603
_java_lang_System_arraycopy: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6604
    <javanative: 'java/lang/System' name: 'arraycopy'>
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6605
    | srcArray  srcIdx  dstArray  dstIdx  srcArrayCC  dstArrayCC  count  dstEndIdx |
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6606
    srcArray := nativeContext argAt: 1.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6607
    srcArray isNil ifTrue: [ ^ self throwNullPointerException ].     
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6608
    srcArray isJavaArray ifFalse: [ "mh 29.11.11 dirty ugly hack, pretend that java string is char array"
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6609
    (self canCast:srcArray class to: (self classNamed:'java/lang/String')) ifTrue: [srcArray := srcArray instVarNamed: #value] ifFalse: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6610
    ^ self throwArrayStoreException: srcArray] ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6611
    srcIdx := nativeContext argAt: 2.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6612
    dstArray := nativeContext argAt: 3.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6613
    dstArray isNil ifTrue: [ ^ self throwNullPointerException ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6614
    dstArray isJavaArray ifFalse: [ ^ self throwArrayStoreException: dstArray ].
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  6615
    srcArrayCC := srcArray class javaComponentClass.
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  6616
    dstArrayCC := dstArray class javaComponentClass.
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6617
    srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6618
        srcArrayCC isJavaPrimitiveType ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6619
            srcArrayCC ~~ dstArrayCC ifTrue: [ ^ self throwArrayStoreException: dstArray ]
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6620
        ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6621
    ] ifFalse: [ ^ self throwArrayStoreException: dstArray ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6622
    dstIdx := nativeContext argAt: 4.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6623
    count := nativeContext argAt: 5.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6624
    count < 0 ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6625
        ^ self throwArrayIndexOutOfBoundsException: (srcIdx + count - 1)
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6626
    ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6627
    ((srcIdx < 0) or: [ srcIdx + count > srcArray size ]) ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6628
        srcArray size == 0 ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6629
            srcArray isVariable ifFalse: [ ^ self throwArrayStoreException: srcArray ]
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6630
        ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6631
        ^ self throwArrayIndexOutOfBoundsException: (srcIdx + count - 1)
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6632
    ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6633
    ((dstIdx < 0) or: [ dstIdx + count > dstArray size ]) ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6634
        dstArray size == 0 ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6635
            dstArray isVariable ifFalse: [ ^ self throwArrayStoreException: dstArray ]
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6636
        ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6637
        ^ self throwArrayIndexOutOfBoundsException: (dstIdx + count - 1)
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6638
    ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6639
    dstEndIdx := dstIdx + count.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6640
    dstIdx := dstIdx + 1.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6641
    srcIdx := srcIdx + 1.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6642
    (srcArray class isBytes and: [ dstArray class isBytes ]) ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6643
        dstArray 
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6644
            replaceBytesFrom: dstIdx
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6645
            to: dstEndIdx
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6646
            with: srcArray
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6647
            startingAt: srcIdx.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6648
    ] ifFalse: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6649
        dstArrayCC isJavaPrimitiveType ifFalse: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6650
            "Copy from array iff src=dst to avoid overwriting a data when copying"
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6651
            srcArray == dstArray ifTrue: [ srcArray := srcArray copy ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6652
            1 to: count do: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6653
                :i | 
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6654
                | obj |
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6655
                obj := srcArray at: srcIdx + i - 1.
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6656
                (obj notNil and: [ (self canCast: obj class to: dstArrayCC) not ]) ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6657
                    ^ self throwArrayStoreException: dstArray
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6658
                ].
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6659
                dstArray at: dstIdx + i - 1 put: (srcArray at: srcIdx + i - 1)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6660
            ]
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6661
        ] ifTrue: [
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6662
            dstArray 
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6663
                replaceFrom: dstIdx
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6664
                to: dstEndIdx
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6665
                with: srcArray
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6666
                startingAt: srcIdx.
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  6667
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6668
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6669
    ^ nil.
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  6670
992
6d3e3d937fda Class loader mess cleanup, more will come later...
vranyj1
parents: 988
diff changeset
  6671
    "Modified: / 08-09-2011 / 15:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  6672
    "Modified: / 29-11-2011 / 12:17:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6673
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6675
_java_lang_System_currentTimeMillis: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6676
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6677
    <javanative: 'java/lang/System' name: 'currentTimeMillis'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6679
        "return the milliseconds since 1.jan.1970"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6681
    |delta|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6683
    "/ workaround win32 bug (use 01:01:01 as base)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6684
    delta := Timestamp now millisecondDeltaFrom:(AbsoluteTime day:1 month:1 year:1970 hour:1 minutes:1 seconds:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6685
    delta := delta - 3600 - 60 - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6686
"/    "/ make certain, it fits 64 signed bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6687
"/    delta := delta bitAnd:16r7FFFFFFFFFFFFFFF.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6688
"/    ^ delta max:0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6689
    ^ delta
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6691
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6692
     JavaVM _System_currentTimeMillis:nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6693
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6694
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6695
    "Modified: / 23.12.1998 / 21:54:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6696
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6697
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6698
_java_lang_System_identityHashCode: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6699
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6700
    <javanative: 'java/lang/System' name: 'identityHashCode'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6701
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6702
        |obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6703
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6704
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6705
    ^ obj identityHash
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6706
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6707
    "Modified: / 12.11.1998 / 18:52:07 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6708
    "Created: / 12.11.1998 / 18:54:00 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6709
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6710
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6711
_java_lang_System_initProperties: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6712
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6713
    <javanative: 'java/lang/System' name: 'initProperties'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6715
        |props stProps|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6716
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6717
    props := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6718
    stProps := self systemProperties.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6720
    "/ recursively invoke myself on the Java HashTable.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6721
    "/ calling 'put' to stuff in the values ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6723
    stProps keysAndValuesDo:[:key :value |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6724
	|keyObj valueObj|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6725
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6726
	keyObj := Java as_String:key.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6727
	valueObj := Java as_String:value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6728
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6729
	props 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6730
	    perform:#'put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6731
	    with:keyObj 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6732
	    with:valueObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6733
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6734
    ^ props
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6736
    "Created: / 3.1.1998 / 14:25:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6737
    "Modified: / 4.1.1998 / 14:23:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6738
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6739
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6740
_java_lang_System_mapLibraryName: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6741
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6742
    <javanative: 'java/lang/System' name: 'mapLibraryName'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6743
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6744
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6745
    | name |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6746
    name := Java as_ST_String: (aJavaContext argAt: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6747
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6748
    OperatingSystem isUNIXlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6749
        ^Java as_String: ('lib' , name , '.so').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6750
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6752
    OperatingSystem isMSWINDOWSlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6753
        ^Java as_String: ( name , '.dll').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6754
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6755
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6756
    self error:'Unknown/Unsupported platform'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6757
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6758
    "Created: / 09-12-2010 / 18:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6759
    "Modified: / 01-04-2011 / 18:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6760
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6761
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6762
_java_lang_System_nanoTime: nativeContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6763
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6764
    <javanative: 'java/lang/System' name: 'nanoTime'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6765
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6766
    ^ OperatingSystem getMicrosecondTime * 1000
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6767
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6768
    "Modified: / 07-08-2011 / 21:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6769
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6770
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6771
_java_lang_System_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6773
    <javanative: 'java/lang/System' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6775
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6776
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6777
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6778
    "Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6779
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6780
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6781
_java_lang_System_setErr0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6782
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6783
    <javanative: 'java/lang/System' name: 'setErr0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6784
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6785
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6787
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6788
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6789
    self setOpenFile:(self javaConsoleStream ? Stderr) at:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6790
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6791
    nativeContext receiver instVarNamed:'err' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6792
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6793
    "Created: / 18.3.1997 / 15:02:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6794
    "Modified: / 4.1.1998 / 16:21:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6795
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6797
_java_lang_System_setIn0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6799
    <javanative: 'java/lang/System' name: 'setIn0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6801
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6803
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6805
    self setOpenFile:Stdin at:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6806
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6807
    nativeContext receiver instVarNamed:'in' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6808
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6809
    "Created: / 4.1.1998 / 16:16:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6810
    "Modified: / 4.1.1998 / 16:20:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6811
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6812
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6813
_java_lang_System_setOut0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6814
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6815
    <javanative: 'java/lang/System' name: 'setOut0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6817
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6818
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6819
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6821
    self setOpenFile:(self javaConsoleStream ? Stdout) at:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6822
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6823
    nativeContext receiver instVarNamed:'out' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6824
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6825
    "Created: / 4.1.1998 / 16:18:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6826
    "Modified: / 4.1.1998 / 16:20:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6827
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6828
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6829
_java_lang_Thread_currentThread: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6830
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6831
    <javanative: 'java/lang/Thread' name: 'currentThread'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6833
    |t p|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6834
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6835
    p := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6836
    t := self javaThreadForSTProcess:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6837
    t notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6838
        ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6839
    ].
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  6840
    t := self newThread: p name.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  6841
    t instVarNamed: 'tid' put: p id.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6842
    Java threads at:t put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6843
    ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6844
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  6845
    "Modified: / 04-12-2011 / 20:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6846
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6847
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  6848
_java_lang_Thread_holdsLock: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6849
    <javanative: 'java/lang/Thread' name: 'holdsLock'>
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6850
    | obj  mon  thisProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6851
    obj := aJavaContext argAt: 1.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6852
    obj isNil ifTrue: [self throwNullPointerException:'null given to _java_lang_Thread_holdsLock'].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6853
    mon := self monitorFor: obj.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6854
    thisProcess := Processor activeProcess.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6855
    (mon isOwnedBy: thisProcess) ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6857
    "Created: / 30-04-2011 / 22:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  6858
    "Modified: / 09-12-2011 / 11:13:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6859
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6860
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6861
_java_lang_Thread_interrupt0: nativeContext 
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6862
    <javanative: 'java/lang/Thread' name: 'interrupt0()V'>
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6863
    | jThread  stProcess |
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6864
    jThread := nativeContext receiver.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6865
    stProcess := self stProcessForJavaThread: jThread.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6866
    self assert: stProcess notNil.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6867
    stProcess javaInterrupt.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6868
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6869
    "Modified: / 02-01-1998 / 21:49:06 / cg"
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  6870
    "Created: / 10-04-1998 / 15:21:43 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6871
    "Modified: / 30-11-2011 / 13:36:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6872
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6873
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6874
_java_lang_Thread_isAlive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6875
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6876
    <javanative: 'java/lang/Thread' name: 'isAlive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6877
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6878
        "is it alive ?"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6879
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6880
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6881
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6882
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6883
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6884
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6885
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6886
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6887
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6888
	^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6889
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6890
    stProcess isDead ifTrue:[^ 0 "FALSE"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6891
    ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6893
    "Created: / 5.1.1998 / 02:03:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6894
    "Modified: / 6.2.1998 / 02:15:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6895
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6896
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6897
_java_lang_Thread_isInterrupted: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6898
    <javanative: 'java/lang/Thread' name: 'isInterrupted'>
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6899
    "ask if a thread is interrupted (clear interruptState if arg is true)"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6900
    
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6901
    | jThread  stProcess  clearInterrupt  wasInterrupted |
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6902
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6903
    stProcess := self stProcessForJavaThread: jThread.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6904
    self assert: stProcess notNil.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6905
    clearInterrupt := nativeContext argAt: 1.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6906
    wasInterrupted := stProcess isInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6907
    clearInterrupt ~~ 0 ifTrue: [ stProcess clearInterrupted ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  6908
    stProcess isDead ifTrue: [ ^ 0 ].
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  6909
    wasInterrupted ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6910
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  6911
    "Modified: / 02-01-1998 / 21:49:06 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  6912
    "Created: / 07-01-1998 / 18:50:26 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  6913
    "Modified: / 05-08-2011 / 22:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  6914
    "Modified: / 30-11-2011 / 12:22:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6915
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  6916
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6917
_java_lang_Thread_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6918
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6919
    <javanative: 'java/lang/Thread' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6921
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6922
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6924
    "Created: / 20-10-2010 / 11:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6925
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6926
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6927
_java_lang_Thread_setPriority0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6928
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6929
    <javanative: 'java/lang/Thread' name: 'setPriority0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6930
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6931
   |t p prio|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6932
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6933
    t := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6934
    p := JavaVM stProcessForJavaThread:t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6935
    prio := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6936
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6937
    p isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6938
        ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6939
            'JAVA [info]: no process yet (in setPriority)' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6940
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6941
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6942
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6944
    "Modified: / 01-05-2011 / 13:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6945
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6946
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6947
_java_lang_Thread_sleep: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6948
    <javanative: 'java/lang/Thread' name: 'sleep'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6949
    "sleep for some milliseconds "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6950
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6951
    | millis |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6952
    millis := nativeContext argAt: 1.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6953
    millis < 0 ifTrue: [
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6954
        self throwIllegalArgumentException: ('negative timeout: %1 in Thread.sleep' bindWith: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6955
    ].
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6956
    Logger 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6957
        log: ('%1 going to sleep for %2' 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6958
                bindWith: Processor activeProcess printString
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6959
                with: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6960
        severity: #debug
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6961
        facility: #JVM.
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6962
    self sleepForTimeout: millis state: #sleep.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6963
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  6964
    "Modified: / 08-01-1999 / 16:42:52 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  6965
    "Modified: / 30-11-2011 / 13:58:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6966
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6967
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6968
_java_lang_Thread_start0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6969
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6970
    <javanative: 'java/lang/Thread' name: 'start0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6971
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6972
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6973
    ^self threadStart: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6974
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6975
    "Modified: / 24-12-1999 / 03:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6976
    "Created: / 22-11-2010 / 17:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6977
    "Modified: / 14-12-2010 / 21:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6978
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6979
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6980
_java_lang_Thread_yield: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6981
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6982
    <javanative: 'java/lang/Thread' name: 'yield()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6983
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6984
        "yield"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6985
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6986
    |jThread stProcess|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6987
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6988
    Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6989
"/    jThread := nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6990
"/    stProcess := JavaVM stProcessForJavaThread:jThread.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6991
"/    stProcess isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6992
"/        ThreadTrace == true ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6993
"/            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6994
"/        ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6995
"/        ^ nil "void"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6996
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6997
"/    stProcess == Processor activeProcess ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6998
"/        Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  6999
"/    ] ifFalse:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7000
"/        self halt.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7001
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7002
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7003
    "Created: / 5.1.1998 / 02:03:51 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7004
    "Modified: / 23.12.1998 / 19:19:17 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7005
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7006
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7007
_java_lang_Throwable_fillInStackTrace: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7008
    <javanative: 'java/lang/Throwable' name: 'fillInStackTrace'>
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7009
    | java_lang_Throwable  exceptionObject  list  con |
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7010
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7011
    java_lang_Throwable := Java classNamed: 'java/lang/Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7012
    exceptionObject := nativeContext receiver.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7013
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7014
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7015
    "/ debugging only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7016
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7017
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7018
    (java_lang_Throwable notNil and:[(exceptionObject isKindOf: java_lang_Throwable) not]) ifTrue: [
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7019
        self error:'Thrown object is not a java.lang.Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7020
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7021
    con := thisContext sender.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7022
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7023
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7024
    "/ we are not interrested in all intermediate Exception frames ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7025
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7026
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7027
    FullExceptionTrace ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7028
        "/ first, skip any JavaVM contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7029
        [ con receiver == exceptionObject ] whileFalse: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7030
        
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7031
        "/ then, all exception-init contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7032
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7033
        [ con receiver == exceptionObject ] whileTrue: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7034
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7035
    list := OrderedCollection new.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7036
    [ con notNil ] whileTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7037
        (con isJavaContext) ifTrue: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7038
            "/ add a copy, in case the context continues with some
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7039
            "/ cleanup ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7040
            list add: con shallowCopy
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7041
        ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  7042
        con := con sender
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7043
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7044
    exceptionObject instVarNamed: 'backtrace' put: (list asArray).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7045
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7046
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  7047
    "Created: / 04-01-1998 / 14:27:40 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  7048
    "Modified: / 08-05-1998 / 21:29:53 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  7049
    "Modified: / 21-10-2011 / 13:41:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  7050
    "Modified: / 28-10-2011 / 22:15:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7051
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7052
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7053
_java_lang_Throwable_getStackTraceDepth: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7054
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7055
    <javanative: 'java/lang/Throwable' name: 'getStackTraceDepth'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7056
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7057
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7058
    ^(nativeContext receiver instVarNamed: #backtrace) size
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7059
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7060
    "Modified: / 01-05-2011 / 20:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7061
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7062
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7063
_java_lang_Throwable_getStackTraceElement: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7064
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7065
    <javanative: 'java/lang/Throwable' name: 'getStackTraceElement'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7066
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7067
    | throwable index ctx stackTraceElement |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7068
    throwable := nativeContext receiver.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7069
    index :=  nativeContext argAt: 1.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7070
    ctx := (throwable instVarNamed:#backtrace) at: index + 1.
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7071
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7072
    stackTraceElement := (self classForName: 'java.lang.StackTraceElement') new.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  7073
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7074
    stackTraceElement 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7075
        instVarNamed: #declaringClass 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7076
        put: (Java as_String:(ctx method javaClass javaName));
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7077
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7078
        instVarNamed: #methodName 
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7079
        put: (Java as_String:"(ctx method printStringForBrowserWithSelector:ctx method selector inClass: ctx method javaClass) asString"ctx method selector);
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7080
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7081
        instVarNamed: #lineNumber 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7082
        put: ctx lineNumber.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7083
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7084
    ctx method javaClass sourceFile notNil ifTrue:[                
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7085
        stackTraceElement        
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7086
            instVarNamed: #fileName 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7087
            put: (Java as_String:(ctx method javaClass sourceFile))
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7088
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7089
    ^ stackTraceElement
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  7090
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7091
    "Modified: / 02-12-2011 / 23:36:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7092
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7093
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7094
_java_lang_UNIXProcess_forkAndExec: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7095
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7096
    <javanative: 'java/lang/UNIXProcess' name: 'forkAndExec'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7097
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7098
    ^ UnimplementedNativeMethodSignal raise
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7099
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7100
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7101
_java_lang_UNIXProcess_initIDs: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7102
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7103
    <javanative: 'java/lang/UNIXProcess' name: 'initIDs'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7104
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7105
    "Nothing to do"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7106
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7107
    "Modified: / 25-06-2011 / 10:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7108
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7110
!JavaVM class methodsFor:'native - java.lang.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7111
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7112
_java_lang_reflect_Array_getLength: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7113
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7114
    <javanative: 'java/lang/reflect/Array' name: 'getLength(Ljava/lang/Object;)I'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7115
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7116
    ^(nativeContext argAt: 1) size
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7117
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7118
    "Modified: / 17-08-2011 / 09:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7119
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  7120
1151
vranyj1
parents: 1150
diff changeset
  7121
_java_lang_reflect_Array_multiNewArray: nativeContext
vranyj1
parents: 1150
diff changeset
  7122
vranyj1
parents: 1150
diff changeset
  7123
    <javanative: 'java/lang/reflect/Array' name: 'multiNewArray(Ljava/lang/Class;[I)Ljava/lang/Object;'>
vranyj1
parents: 1150
diff changeset
  7124
vranyj1
parents: 1150
diff changeset
  7125
    |componentClass sizes cls array |
vranyj1
parents: 1150
diff changeset
  7126
vranyj1
parents: 1150
diff changeset
  7127
    (nativeContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  7128
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  7129
        ^nil.
vranyj1
parents: 1150
diff changeset
  7130
    ].
vranyj1
parents: 1150
diff changeset
  7131
    (nativeContext argAt:2) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  7132
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  7133
        ^nil.
vranyj1
parents: 1150
diff changeset
  7134
    ].
vranyj1
parents: 1150
diff changeset
  7135
vranyj1
parents: 1150
diff changeset
  7136
    componentClass := self reflection 
vranyj1
parents: 1150
diff changeset
  7137
                classForJavaClassObject:(nativeContext argAt:1).
vranyj1
parents: 1150
diff changeset
  7138
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  7139
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  7140
        ^nil
vranyj1
parents: 1150
diff changeset
  7141
    ].    
vranyj1
parents: 1150
diff changeset
  7142
    sizes := nativeContext argAt:2.
vranyj1
parents: 1150
diff changeset
  7143
    sizes class == SignedIntegerArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  7144
        self throwIllegalArgumentException:('sizes arguments not instance of int[] (is: %1)' bindWith: sizes class).
vranyj1
parents: 1150
diff changeset
  7145
        ^nil
vranyj1
parents: 1150
diff changeset
  7146
    ].
vranyj1
parents: 1150
diff changeset
  7147
    sizes size == 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  7148
        self throwIllegalArgumentException:('sizes argument has no elements').
vranyj1
parents: 1150
diff changeset
  7149
        ^nil
vranyj1
parents: 1150
diff changeset
  7150
    ].
vranyj1
parents: 1150
diff changeset
  7151
    array := nil.
vranyj1
parents: 1150
diff changeset
  7152
    cls := componentClass.
vranyj1
parents: 1150
diff changeset
  7153
    sizes do:[:size|
vranyj1
parents: 1150
diff changeset
  7154
        | newArray |
vranyj1
parents: 1150
diff changeset
  7155
        size > SmallInteger maxVal ifTrue:[
vranyj1
parents: 1150
diff changeset
  7156
            "This is just for Mauve tests"
vranyj1
parents: 1150
diff changeset
  7157
            self throwExceptionClassName:'java.lang.OutOfMemoryError'
vranyj1
parents: 1150
diff changeset
  7158
                             withMessage:'array size too big'.
vranyj1
parents: 1150
diff changeset
  7159
            ^nil.            
vranyj1
parents: 1150
diff changeset
  7160
        ].
vranyj1
parents: 1150
diff changeset
  7161
        size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  7162
            self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  7163
                             withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  7164
            ^nil
vranyj1
parents: 1150
diff changeset
  7165
        ].
vranyj1
parents: 1150
diff changeset
  7166
        cls := cls javaArrayClass.
vranyj1
parents: 1150
diff changeset
  7167
        newArray := cls new: size.
vranyj1
parents: 1150
diff changeset
  7168
        1 to: size do:[:i|
vranyj1
parents: 1150
diff changeset
  7169
            newArray at:i put: array copy.
vranyj1
parents: 1150
diff changeset
  7170
        ].
vranyj1
parents: 1150
diff changeset
  7171
        array := newArray.
vranyj1
parents: 1150
diff changeset
  7172
    ].
vranyj1
parents: 1150
diff changeset
  7173
    ^array.
vranyj1
parents: 1150
diff changeset
  7174
vranyj1
parents: 1150
diff changeset
  7175
    "Modified: / 22-11-2011 / 10:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
  7176
!
vranyj1
parents: 1150
diff changeset
  7177
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7178
_java_lang_reflect_Array_newArray:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7179
    <javanative: 'java/lang/reflect/Array' name: 'newArray'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7180
    |componentClass size|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7181
1151
vranyj1
parents: 1150
diff changeset
  7182
    (aJavaContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  7183
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  7184
        ^nil.
vranyj1
parents: 1150
diff changeset
  7185
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7186
    componentClass := self reflection 
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7187
                classForJavaClassObject:(aJavaContext argAt:1).
1151
vranyj1
parents: 1150
diff changeset
  7188
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  7189
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  7190
        ^nil
vranyj1
parents: 1150
diff changeset
  7191
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7192
    size := aJavaContext argAt:2.
1151
vranyj1
parents: 1150
diff changeset
  7193
    size < 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  7194
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  7195
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  7196
        ^nil
vranyj1
parents: 1150
diff changeset
  7197
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7198
    ^ componentClass javaArrayClass new:size
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7199
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7200
    "Created: / 17-12-2010 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7201
    "Modified: / 28-01-2011 / 15:18:50 / Marcel Hlopko <hlopik@gmail.com>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
  7202
    "Modified: / 04-06-2011 / 17:06:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
  7203
    "Modified: / 22-11-2011 / 09:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7204
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7205
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7206
_java_lang_reflect_Array_set: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7207
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7208
    <javanative: 'java/lang/reflect/Array' name: 'set'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7209
1151
vranyj1
parents: 1150
diff changeset
  7210
    | array index value |
vranyj1
parents: 1150
diff changeset
  7211
    array :=  nativeContext at:1.
vranyj1
parents: 1150
diff changeset
  7212
    index := (nativeContext at:2) + 1.    
vranyj1
parents: 1150
diff changeset
  7213
    value :=  nativeContext at:3.    
vranyj1
parents: 1150
diff changeset
  7214
vranyj1
parents: 1150
diff changeset
  7215
    array isJavaArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  7216
        self throwIllegalArgumentException:'passed object is not an array'.
vranyj1
parents: 1150
diff changeset
  7217
        ^nil.
vranyj1
parents: 1150
diff changeset
  7218
    ].
vranyj1
parents: 1150
diff changeset
  7219
    index < 1 ifTrue:[
vranyj1
parents: 1150
diff changeset
  7220
        self throwIllegalArgumentException:'index is negative'.
vranyj1
parents: 1150
diff changeset
  7221
        ^nil.
vranyj1
parents: 1150
diff changeset
  7222
    ].
vranyj1
parents: 1150
diff changeset
  7223
    index > array size ifTrue:[
vranyj1
parents: 1150
diff changeset
  7224
        self throwArrayIndexOutOfBoundsException: index.
vranyj1
parents: 1150
diff changeset
  7225
        ^nil.
vranyj1
parents: 1150
diff changeset
  7226
    ].
vranyj1
parents: 1150
diff changeset
  7227
    value isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  7228
        array at: index put: nil.
vranyj1
parents: 1150
diff changeset
  7229
        ^nil
vranyj1
parents: 1150
diff changeset
  7230
    ].    
vranyj1
parents: 1150
diff changeset
  7231
    (self canCast: value class to: array class javaComponentClass) ifFalse:[
vranyj1
parents: 1150
diff changeset
  7232
        self throwIllegalArgumentException:'type-incompatible value'.
vranyj1
parents: 1150
diff changeset
  7233
        ^nil.
vranyj1
parents: 1150
diff changeset
  7234
    ].
vranyj1
parents: 1150
diff changeset
  7235
    array at: index put: value.
vranyj1
parents: 1150
diff changeset
  7236
vranyj1
parents: 1150
diff changeset
  7237
    "Modified: / 22-11-2011 / 11:06:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7238
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7239
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7240
_java_lang_reflect_Proxy_defineClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7241
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7242
    <javanative: 'java/lang/reflect/Proxy' name: 'defineClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7243
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7244
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7245
    private static native Class defineClass0(ClassLoader loader, String name,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7246
                                             byte[] b, int off, int len);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7247
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7248
    | loader name b off len  bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7249
    loader := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7250
    name := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7251
    b := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7252
    off := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7253
    len := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7254
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7255
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7256
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7257
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7258
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7259
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7260
    cls classLoader: loader.
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  7261
    self classRegistry registerClass: cls.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7262
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7263
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7264
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7265
    "Created: / 06-02-2011 / 16:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7266
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7267
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7268
!JavaVM class methodsFor:'native - java.net'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7269
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7270
_java_net_DatagramPacket_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7271
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7272
    <javanative: 'java/net/DatagramPacket' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7273
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7274
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7275
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7276
    "Modified: / 13-09-2011 / 22:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7277
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7278
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7279
_java_net_Inet4AddressImpl_getHostByAddr: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7280
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7281
    <javanative: 'java/net/Inet4AddressImpl' name: 'getHostByAddr([B)Ljava/lang/String;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7282
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7283
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7284
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7285
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7286
_java_net_Inet4AddressImpl_getLocalHostName: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7287
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7288
    <javanative: 'java/net/Inet4AddressImpl' name: 'getLocalHostName()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7289
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7290
    ^Java as_String: OperatingSystem getHostName
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7291
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7292
    "Modified: / 13-09-2011 / 22:36:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7293
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7294
1084
vranyj1
parents: 1083
diff changeset
  7295
_java_net_Inet4AddressImpl_lookupAllHostAddr: nativeContext
vranyj1
parents: 1083
diff changeset
  7296
vranyj1
parents: 1083
diff changeset
  7297
    <javanative: 'java/net/Inet4AddressImpl' name: 'lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress;'>
vranyj1
parents: 1083
diff changeset
  7298
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7299
    | hostname sockaddr inet4Address |
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7300
    hostname := Java as_ST_String: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7301
    [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7302
        sockaddr := IPSocketAddress hostName: hostname.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7303
    ] on: HostNameLookupError do: [:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7304
        self throwExceptionClassName: 'java.net.UnknownHostException' withMessage: (ex description , '(' , hostname , ')').         
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7305
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7306
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7307
    "Bad, here we have an access to just one inet address,
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7308
     that's fine for now, however"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7309
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7310
    inet4Address := (self classForName:'java.net.Inet4Address') newCleared.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7311
    inet4Address 
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7312
        instVarNamed: #family put: 1; "/IPv4
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7313
        instVarNamed: #address put: (sockaddr address doubleWordAt: 1 MSB: true);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7314
        instVarNamed: #hostName put: (nativeContext argAt:1);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7315
        instVarNamed: #canonicalHostName put: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7316
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7317
    ^(self classForName:'java.net.InetAddress') javaArrayClass with: inet4Address.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7318
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7319
    "Modified: / 08-11-2011 / 10:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  7320
!
vranyj1
parents: 1083
diff changeset
  7321
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7322
_java_net_Inet4Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7323
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7324
    <javanative: 'java/net/Inet4Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7325
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7326
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7327
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7328
    "Modified: / 13-09-2011 / 22:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7329
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7330
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7331
_java_net_Inet6Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7332
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7333
    <javanative: 'java/net/Inet6Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7334
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7335
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7336
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7337
    "Modified: / 13-09-2011 / 22:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7338
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7339
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7340
_java_net_InetAddressImplFactory_isIPv6Supported: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7341
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7342
    <javanative: 'java/net/InetAddressImplFactory' name: 'isIPv6Supported'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7343
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7344
    ^ 0 "IPv6 is not supported!!"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7345
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7346
    "Modified: / 13-09-2011 / 19:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7347
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7348
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7349
_java_net_InetAddress_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7350
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7351
    <javanative: 'java/net/InetAddress' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7352
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7353
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7354
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7355
    "Created: / 27-01-1998 / 18:16:40 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7356
    "Modified (comment): / 13-09-2011 / 22:32:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7357
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7358
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7359
_java_net_NetworkInterface_getAll: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7360
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7361
    <javanative: 'java/net/NetworkInterface' name: 'getAll()[Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7362
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7363
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7364
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7365
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7366
_java_net_NetworkInterface_getByName0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7367
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7368
    <javanative: 'java/net/NetworkInterface' name: 'getByName0(Ljava/lang/String;)Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7369
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7370
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7371
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7372
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7373
_java_net_NetworkInterface_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7374
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7375
    <javanative: 'java/net/NetworkInterface' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7376
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7377
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7378
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7379
    "Modified: / 13-09-2011 / 22:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7380
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7381
1084
vranyj1
parents: 1083
diff changeset
  7382
_java_net_PlainDatagramSocketImpl_bind0: nativeContext
vranyj1
parents: 1083
diff changeset
  7383
vranyj1
parents: 1083
diff changeset
  7384
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'bind0(ILjava/net/InetAddress;)V'>
vranyj1
parents: 1083
diff changeset
  7385
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7386
    | port addr sock fd |
1084
vranyj1
parents: 1083
diff changeset
  7387
vranyj1
parents: 1083
diff changeset
  7388
    port := nativeContext argAt: 1.
vranyj1
parents: 1083
diff changeset
  7389
    addr := nativeContext argAt: 2.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7390
    addr isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7391
        self throwSocketException: 'Passed InetAddress object is null'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7392
        ^nil.    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7393
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7394
    fd := nativeContext receiver instVarNamed: #fd.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7395
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7396
        self throwSocketException: 'Socket closed'.        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7397
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7398
    ].
1084
vranyj1
parents: 1083
diff changeset
  7399
    sock := self validateFile: nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  7400
vranyj1
parents: 1083
diff changeset
  7401
    addr := addr perform: #'getAddress()[B'.
vranyj1
parents: 1083
diff changeset
  7402
    addr = #[0 0 0 0] ifTrue:[
vranyj1
parents: 1083
diff changeset
  7403
        addr := nil
vranyj1
parents: 1083
diff changeset
  7404
    ] ifFalse:[
vranyj1
parents: 1083
diff changeset
  7405
        self throwSocketException: 'Only all-interface bind is supported by underlaing socket implementation, sorry'.
vranyj1
parents: 1083
diff changeset
  7406
        ^nil
vranyj1
parents: 1083
diff changeset
  7407
    ].
vranyj1
parents: 1083
diff changeset
  7408
    [
vranyj1
parents: 1083
diff changeset
  7409
        sock bindTo: port address: addr reuseAddress: true.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7410
        nativeContext receiver instVarNamed: #localPort put: sock port.
1084
vranyj1
parents: 1083
diff changeset
  7411
    ] on: Error do:[:ex|
vranyj1
parents: 1083
diff changeset
  7412
        self throwSocketException: 'bind0() failed: ', ex description        
vranyj1
parents: 1083
diff changeset
  7413
    ]
vranyj1
parents: 1083
diff changeset
  7414
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7415
    "Modified: / 07-11-2011 / 21:45:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  7416
!
vranyj1
parents: 1083
diff changeset
  7417
vranyj1
parents: 1083
diff changeset
  7418
_java_net_PlainDatagramSocketImpl_datagramSocketClose: nativeContext
vranyj1
parents: 1083
diff changeset
  7419
vranyj1
parents: 1083
diff changeset
  7420
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketClose()V'>
vranyj1
parents: 1083
diff changeset
  7421
vranyj1
parents: 1083
diff changeset
  7422
        |jsock sock|
vranyj1
parents: 1083
diff changeset
  7423
vranyj1
parents: 1083
diff changeset
  7424
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  7425
vranyj1
parents: 1083
diff changeset
  7426
    sock := self validateFile:jsock.
vranyj1
parents: 1083
diff changeset
  7427
    sock notNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  7428
	FileIOTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  7429
	    'JAVA: datagram close socket' infoPrintCR
vranyj1
parents: 1083
diff changeset
  7430
	].
vranyj1
parents: 1083
diff changeset
  7431
	sock close.
vranyj1
parents: 1083
diff changeset
  7432
    ].
vranyj1
parents: 1083
diff changeset
  7433
vranyj1
parents: 1083
diff changeset
  7434
    "Modified: / 21.8.1997 / 17:09:40 / cg"
vranyj1
parents: 1083
diff changeset
  7435
    "Created: / 25.1.1998 / 20:04:24 / cg"
vranyj1
parents: 1083
diff changeset
  7436
!
vranyj1
parents: 1083
diff changeset
  7437
vranyj1
parents: 1083
diff changeset
  7438
_java_net_PlainDatagramSocketImpl_datagramSocketCreate: nativeContext
vranyj1
parents: 1083
diff changeset
  7439
vranyj1
parents: 1083
diff changeset
  7440
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketCreate()V'>
vranyj1
parents: 1083
diff changeset
  7441
vranyj1
parents: 1083
diff changeset
  7442
        |jsock fd sock fileNo|
vranyj1
parents: 1083
diff changeset
  7443
vranyj1
parents: 1083
diff changeset
  7444
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  7445
vranyj1
parents: 1083
diff changeset
  7446
    fd := jsock instVarNamed:'fd'.
vranyj1
parents: 1083
diff changeset
  7447
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
vranyj1
parents: 1083
diff changeset
  7448
        self halt:'file already open'.
vranyj1
parents: 1083
diff changeset
  7449
        self internalError:'file already open'.
vranyj1
parents: 1083
diff changeset
  7450
        self throwIOExceptionWithMessage:'file already open in socketCreate'.
vranyj1
parents: 1083
diff changeset
  7451
        ^ self.
vranyj1
parents: 1083
diff changeset
  7452
    ].
vranyj1
parents: 1083
diff changeset
  7453
vranyj1
parents: 1083
diff changeset
  7454
    FileOpenTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  7455
        ('JAVA: create datagram socket') infoPrintCR.
vranyj1
parents: 1083
diff changeset
  7456
    ].
vranyj1
parents: 1083
diff changeset
  7457
vranyj1
parents: 1083
diff changeset
  7458
    sock := Socket newUDP.
vranyj1
parents: 1083
diff changeset
  7459
    sock isNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  7460
        self throwIOExceptionWithMessage:'socketCreate failed'.
vranyj1
parents: 1083
diff changeset
  7461
    ].
vranyj1
parents: 1083
diff changeset
  7462
vranyj1
parents: 1083
diff changeset
  7463
    fileNo := self addOpenFile:sock.
vranyj1
parents: 1083
diff changeset
  7464
    fd instVarNamed:'fd' put:fileNo.
vranyj1
parents: 1083
diff changeset
  7465
vranyj1
parents: 1083
diff changeset
  7466
    "Created: / 25-01-1998 / 19:59:25 / cg"
vranyj1
parents: 1083
diff changeset
  7467
    "Modified: / 30-12-1998 / 20:10:38 / cg"
vranyj1
parents: 1083
diff changeset
  7468
    "Modified: / 03-11-2011 / 23:13:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  7469
!
vranyj1
parents: 1083
diff changeset
  7470
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7471
_java_net_PlainDatagramSocketImpl_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7472
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7473
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7474
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7475
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7476
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7477
    "Modified: / 13-09-2011 / 22:36:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7478
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7479
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7480
_java_net_PlainDatagramSocketImpl_receive0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7481
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7482
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'receive0(Ljava/net/DatagramPacket;)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7483
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7484
    ^ UnimplementedNativeMethodSignal raise
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7485
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7486
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7487
_java_net_PlainDatagramSocketImpl_send: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7488
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7489
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'send(Ljava/net/DatagramPacket;)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7490
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7491
        |jsock jdatagramPacket sock ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7492
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7493
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7494
    jdatagramPacket := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7495
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7496
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7497
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7498
	FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7499
	    ('JAVA: socket send') infoPrintCR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7500
	].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7501
	^ -1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7502
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7503
    ^ -1
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7504
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7505
    "Created: / 4.2.1998 / 15:06:20 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7506
    "Modified: / 30.12.1998 / 20:10:16 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7507
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7508
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7509
_java_net_PlainSocketImpl_initProto: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7510
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7511
    <javanative: 'java/net/PlainSocketImpl' name: 'initProto'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7512
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7513
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7514
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7515
    "Created: / 12-01-1998 / 12:56:52 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  7516
    "Modified (comment): / 13-09-2011 / 22:36:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7517
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7518
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7519
_java_net_PlainSocketImpl_socketAccept: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7520
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7521
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAccept(Ljava/net/SocketImpl;)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7522
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7523
    |jsock fd newJSock sock newSock fileNo|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7524
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7525
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7526
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7527
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7528
    sock isNil ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7529
        self throwIOExceptionWithMessage:'nil socket in accept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7530
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7531
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7532
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7533
    newJSock := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7534
    fd := newJSock instVarNamed:'fd'.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7535
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7536
        self halt:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7537
        self internalError:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7538
        self throwIOExceptionWithMessage:'socket already open in socketAccept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7539
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7540
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7541
    FileIOTrace ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7542
        'JAVA: socket accept' infoPrintCR
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7543
    ].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7544
    [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7545
        newSock := sock accept.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7546
    ] on: Error do:[:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7547
        self throwSocketException:'accept failed: ' , ex description.        
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7548
        ^nil.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7549
    ].
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7550
    newSock isNil ifTrue:[
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7551
        self throwSocketException:'accept failed'.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7552
        ^nil.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7553
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7554
    fileNo := self addOpenFile:newSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7555
    fd instVarNamed:'fd' put:fileNo.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7556
    newJSock instVarNamed:'localport' put: newSock port.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7557
    newJSock instVarNamed:'port' put: newSock getPeer port
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7558
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7559
    "Created: / 04-02-1998 / 15:26:49 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7560
    "Modified: / 30-12-1998 / 20:10:01 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7561
    "Modified: / 19-11-2011 / 00:40:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7562
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7563
1110
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7564
_java_net_PlainSocketImpl_socketAvailable: nativeContext
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7565
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7566
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAvailable()I'>
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7567
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7568
        |jSock sock n|
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7569
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7570
    jSock := nativeContext receiver.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7571
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7572
    sock := self validateFile:jSock.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7573
    sock isNil ifTrue:[
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7574
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7575
	^ self.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7576
    ].
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7577
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7578
    n := sock numAvailable.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7579
    ^ n
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7580
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7581
    "Created: / 4.2.1998 / 16:58:49 / cg"
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7582
    "Modified: / 30.12.1998 / 20:10:08 / cg"
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7583
!
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  7584
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7585
_java_net_PlainSocketImpl_socketBind: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7586
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7587
    <javanative: 'java/net/PlainSocketImpl' name: 'socketBind(Ljava/net/InetAddress;I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7588
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7589
    |jsock jaddr port sock hostName ok err|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7590
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7591
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7592
    jaddr := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7593
    port := nativeContext argAt:2.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7594
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7595
    hostName := jaddr instVarNamed:'hostName'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7596
    hostName isNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7597
        self halt.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7598
    ] ifFalse:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7599
        hostName := Java as_ST_String:hostName
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7600
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7601
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7602
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7603
    sock notNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7604
        FileIOTrace ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7605
            ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7606
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  7607
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7608
        [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7609
            ok := sock bindTo:port address:nil "hostName".
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7610
        ] on: Error do: [:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7611
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7612
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7613
                withMessage:'bind failed: ' , ex description.                                                            
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7614
        ].
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7615
        ok ifFalse:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7616
            err := OperatingSystem lastErrorString.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7617
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7618
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7619
                withMessage:'bind failed: ' , err.                                                            
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7620
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7621
       jsock instVarNamed: #localport put: sock port.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7622
       jsock instVarNamed: #address put: jaddr.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7623
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7624
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7625
    "Created: / 04-02-1998 / 15:06:20 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7626
    "Modified: / 30-12-1998 / 20:10:16 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  7627
    "Modified: / 19-11-2011 / 00:43:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7628
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7629
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7630
_java_net_PlainSocketImpl_socketClose0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7631
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7632
    <javanative: 'java/net/PlainSocketImpl' name: 'socketClose0(Z)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7633
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7634
    ^self commonClose: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7635
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7636
    "Modified: / 07-11-2011 / 23:21:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7637
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7638
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7639
_java_net_PlainSocketImpl_socketConnect: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7640
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7641
    <javanative: 'java/net/PlainSocketImpl' name: 'socketConnect(Ljava/net/InetAddress;II)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7642
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7643
    |jsock jaddr port sock addr hostName ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7644
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7645
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7646
    jaddr := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7647
    port := nativeContext argAt:2.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7648
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7649
    hostName := jaddr instVarNamed:'hostName'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7650
    hostName notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7651
        hostName := Java as_ST_String:hostName
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7652
    ] ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7653
        addr := jaddr instVarNamed:'address'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7654
        addr notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7655
            hostName := ByteArray new:4.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7656
            hostName at:4 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7657
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7658
            hostName at:3 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7659
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7660
            hostName at:2 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7661
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7662
            hostName at:1 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7663
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7664
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7665
    hostName isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7666
        self halt.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7667
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7668
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7669
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7670
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7671
        FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7672
            Logger log: ('socket connect to ' , hostName printString , ' port ' , port printString) severity: #trace facility: #JVM.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7673
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7674
        SocketConnectConfirmation ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7675
            (PermittedHostConnects isNil 
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7676
            or:[(PermittedHostConnects includes:hostName) not]) ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7677
                (self confirm:'connect to host: ' , hostName printString , ' - ok ?')
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7678
                ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7679
                    self throwIOExceptionWithMessage:'connect permission denied'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7680
                ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7681
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7682
                (self confirm:('JAVA Security check\\Always permit connects to this host (''' , hostName printString , ''') ?') withCRs)
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7683
                ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7684
                    PermittedHostConnects isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7685
                        PermittedHostConnects := Set new
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7686
                    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7687
                    PermittedHostConnects add:hostName.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7688
                ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7689
            ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7690
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7691
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7692
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7693
            ok := sock connectTo:hostName port:port.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7694
            ok ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7695
                self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed'.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7696
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7697
            jsock instVarNamed: #localport put: sock port.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7698
            jsock instVarNamed: #address put: jaddr.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7699
        ] on: Error do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7700
            self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed: ', ex description
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7701
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7702
        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7703
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7704
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7705
    "Created: / 25-01-1998 / 20:02:27 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7706
    "Modified: / 30-12-1998 / 20:10:28 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7707
    "Modified: / 13-11-2011 / 23:16:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7708
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7709
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7710
_java_net_PlainSocketImpl_socketCreate: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7711
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7712
    <javanative: 'java/net/PlainSocketImpl' name: 'socketCreate(Z)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7713
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7714
    |jsock isStream fd sock fileNo|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7715
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7716
    jsock := nativeContext receiver.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7717
    isStream := (nativeContext argAt:1) == 1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7718
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7719
    fd := jsock instVarNamed:'fd'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7720
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7721
        self throwSocketException: 'null fd object'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7722
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7723
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7724
        self halt:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7725
        self internalError:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7726
        self throwSocketException:'socket already open in socketCreate'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7727
        ^ self.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7728
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7729
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7730
    FileOpenTrace ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7731
        ('JAVA: create socket') infoPrintCR.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7732
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7733
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7734
    isStream ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7735
        sock := JavaSocket newTCP
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7736
    ] ifFalse:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7737
        sock := JavaSocket newUDP
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7738
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7739
    sock isNil ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7740
        self throwIOExceptionWithMessage:'socketCreate failed'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7741
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7742
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7743
    (jsock instVarNamed: #serverSocket) notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7744
        "/If this is a server socket then enable SO_REUSEADDR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7745
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7746
            Object primitiveFailureSignal
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7747
        ] on: Object primitiveFailureSignal do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7748
            self throwIOExceptionWithMessage:'cannot set SO_REUSEADDR: ' , ex description.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7749
            ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7750
        ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7751
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7752
    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7753
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7754
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7755
    fileNo := self addOpenFile:sock.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7756
    fd instVarNamed:'fd' put:fileNo.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7757
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7758
    "Created: / 25-01-1998 / 19:59:25 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  7759
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7760
    "Modified: / 13-11-2011 / 20:46:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7761
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7762
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7763
_java_net_PlainSocketImpl_socketGetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7764
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7765
    <javanative: 'java/net/PlainSocketImpl' name: 'socketGetOption(ILjava/lang/Object;)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7766
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7767
    | opt arg sock ret |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7768
    opt := nativeContext argAt: 1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7769
    arg := nativeContext argAt: 2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7770
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7771
    sock := self validateFile: nativeContext receiver.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7772
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7773
"/  TCP_NODELAY = 1;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7774
    opt = 1 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7775
        ret := sock getSocketOption: #TCP_NODELAY.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7776
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7777
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7778
"/  SO_BINDADDR = 15;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7779
    opt = 15 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7780
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7781
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7782
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7783
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7784
"/  SO_REUSEADDR = 4;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7785
    opt = 4 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7786
        ret := sock getSocketOption: #SO_REUSEADDR.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7787
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7788
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7789
"/  IP_TOS = 3;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7790
    opt = 3 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7791
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7792
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7793
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7794
"/  SO_LINGER = 128;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7795
    opt = 128 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7796
        ret := sock getSocketOption:#SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7797
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7798
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7799
"/  SO_TIMEOUT = 4102;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7800
    opt = 4102 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7801
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7802
        ^-1 "/Unsupported                   .
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7803
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7804
"/  SO_SNDBUF = 4097;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7805
    opt = 4097 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7806
        ret := sock getSocketOption: #SO_SNDBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7807
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7808
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7809
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7810
"/  SO_RCVBUF = 4098;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7811
    opt = 4098 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7812
        ret := sock getSocketOption: #SO_RCVBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7813
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7814
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7815
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7816
"/  SO_KEEPALIVE = 8;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7817
    opt = 8 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7818
        ret := sock getSocketOption: #SO_KEEPALIVE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7819
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7820
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7821
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7822
"/  SO_OOBINLINE = 4099;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7823
    opt = 4099 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7824
        ret := sock getSocketOption: #SO_OOBINLINE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7825
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7826
    ]
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7827
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7828
    "Modified: / 13-11-2011 / 23:06:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7829
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7830
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7831
_java_net_PlainSocketImpl_socketListen: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7832
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7833
    <javanative: 'java/net/PlainSocketImpl' name: 'socketListen(I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7834
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7835
        |jSock time sock ok|
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7836
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7837
    jSock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7838
    time := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7839
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7840
    sock := self validateFile:jSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7841
    sock notNil ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7842
	FileIOTrace ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7843
	    ('JAVA: socket listen with timeout ' , time printString) infoPrintCR.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7844
	].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7845
	ok := sock listenWithBacklog:5.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7846
	ok ifFalse:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7847
	    self throwIOExceptionWithMessage:'listen failed'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7848
	    ^ self.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7849
	].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7850
	time ~~ 0 ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7851
	    sock readWaitWithTimeoutMs:time
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7852
	]
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7853
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7854
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7855
    "Created: / 4.2.1998 / 15:17:48 / cg"
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  7856
    "Modified: / 30.12.1998 / 20:10:46 / cg"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7857
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7858
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7859
_java_net_PlainSocketImpl_socketSetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7860
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7861
    <javanative: 'java/net/PlainSocketImpl' name: 'socketSetOption(IZLjava/lang/Object;)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7862
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7863
    | opt on val sock o arg1 arg2 |
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7864
    opt := nativeContext argAt: 1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7865
    on  := nativeContext argAt: 2.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7866
    val := nativeContext argAt: 3.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7867
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7868
    sock := self validateFile: nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7869
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7870
"/  TCP_NODELAY = 1;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7871
    opt = 1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7872
        o := #TCP_NODELAY.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7873
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7874
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7875
"/  SO_BINDADDR = 15;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7876
    opt = 15 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7877
        ^self "/Unsupported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7878
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7879
            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7880
"/  SO_REUSEADDR = 4;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7881
    opt = 4 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7882
        o := #SO_REUSEADDR.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7883
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7884
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7885
"/  IP_TOS = 3;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7886
    opt = 3 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7887
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7888
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7889
"/  SO_LINGER = 128;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7890
    opt = 128 ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7891
        o := #SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7892
        arg1 := (on == 1).
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7893
        arg2 := val instVarNamed: #value.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7894
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7895
"/  SO_TIMEOUT = 4102;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7896
    opt = 4102 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7897
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7898
                   .
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7899
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7900
"/  SO_SNDBUF = 4097;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7901
    opt = 4097 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7902
        o := #SO_SNDBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7903
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7904
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7905
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7906
"/  SO_RCVBUF = 4098;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7907
    opt = 4098 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7908
        o := #SO_RCVBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7909
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7910
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7911
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7912
"/  SO_KEEPALIVE = 8;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7913
    opt = 8 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7914
        o := #SO_KEEPALIVE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7915
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7916
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7917
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7918
"/  SO_OOBINLINE = 4099;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7919
    opt = 4099 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7920
        o := #SO_OOBINLINE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7921
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7922
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7923
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7924
    [
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7925
        sock setSocketOption: o argument: arg1 argument: arg2.   
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7926
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7927
        self throwSocketException: 'Error setting socket option: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7928
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7929
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7930
    "Modified: / 13-11-2011 / 23:05:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7931
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7932
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7933
_java_net_SocketInputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7934
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7935
    <javanative: 'java/net/SocketInputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7936
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7937
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7938
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7939
    "Modified: / 09-11-2011 / 22:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7940
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7941
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7942
_java_net_SocketInputStream_socketRead0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7943
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7944
    <javanative: 'java/net/SocketInputStream' name: 'socketRead0(Ljava/io/FileDescriptor;[BIII)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7945
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7946
    | fdObj data off len timeout sock nread |
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7947
    fdObj   := nativeContext argAt:1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7948
    data    := nativeContext argAt:2.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7949
    off     := nativeContext argAt:3.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7950
    len     := nativeContext argAt:4.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7951
    timeout := nativeContext argAt:5.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7952
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7953
    fdObj isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7954
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7955
        ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7956
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7957
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7958
    sock := self validateFile: fdObj.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7959
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7960
    timeout ~~ 0 ifTrue:[            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7961
        [
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7962
            (sock readWaitWithTimeout: timeout) ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7963
                self throwExceptionClassName:'java.net.SocketTimeoutException' withMessage: 'Read timed out'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7964
                ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7965
            ].          
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7966
        ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7967
            self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7968
        ]
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7969
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7970
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7971
    [
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  7972
        nread := sock nextAvailableBytes: len into: data startingAt: off + 1
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7973
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7974
        self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7975
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7976
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7977
    ^nread
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7978
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  7979
    "Modified: / 04-12-2011 / 20:24:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7980
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7981
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7982
_java_net_SocketOutputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7983
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7984
    <javanative: 'java/net/SocketOutputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7985
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7986
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7987
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7988
    "Modified: / 09-11-2011 / 23:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7989
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7990
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7991
_java_net_SocketOutputStream_socketWrite0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7992
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7993
    <javanative: 'java/net/SocketOutputStream' name: 'socketWrite0(Ljava/io/FileDescriptor;[BII)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  7994
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7995
    | fdObj data off len  sock |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7996
    fdObj   := nativeContext argAt:1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7997
    data    := nativeContext argAt:2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7998
    off     := nativeContext argAt:3.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  7999
    len     := nativeContext argAt:4.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8000
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8001
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8002
    fdObj isNil ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8003
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8004
        ^ -1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8005
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8006
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8007
    sock := self validateFile: fdObj.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8008
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8009
    [
1136
2a94c9946e7e Fixes in socket read/write
vranyj1
parents: 1135
diff changeset
  8010
        sock nextPutBytes: len from: data startingAt: off + 1.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8011
    ] on: Error do:[:ex|
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8012
        self throwIOExceptionWithMessage: 'Error when writing: ', ex description.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8013
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  8014
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  8015
    "Modified: / 13-11-2011 / 23:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8016
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8017
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8018
!JavaVM class methodsFor:'native - java.security'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8019
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8020
_java_security_AccessController_doPrivileged: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8021
    <javanative: 'java/security/AccessController' name: 'doPrivileged'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8022
    "we don't care about permissions, we will just allow this. Now it's guaranteed that called code will not perform access permission checks"
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8024
    | retval |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8025
    
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8026
    JavaVM privilegedAccessQuery answer: true do: [
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8027
        retval := (aJavaContext argAt: 1) perform: #'run()Ljava/lang/Object;'.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8028
    ].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8029
    ^retval
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8030
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8031
    "Created: / 20-10-2010 / 12:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1017
23971b5214d8 removed useless infoPrintCR
hlopkmar
parents: 1016
diff changeset
  8032
    "Modified: / 09-10-2011 / 23:56:31 / Marcel Hlopko <hlopik@gmail.com>"
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  8033
    "Modified: / 18-10-2011 / 23:28:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8034
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8035
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8036
_java_security_AccessController_getStackAccessControlContext: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8037
    <javanative: 'java/security/AccessController' name: 'getStackAccessControlContext'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8038
    "/ introduced with jdk1.2
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8039
    "/ supposed to do more here ...
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8040
    
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8041
    ^nil.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8042
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8043
    "Created: / 27-01-1998 / 18:22:15 / cg"
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  8044
    "Modified: / 09-10-2011 / 23:40:46 / Marcel Hlopko <hlopik@gmail.com>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8045
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8046
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8047
!JavaVM class methodsFor:'native - java.sql'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8048
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8049
_java_sql_DriverManager_getCallerClassLoader: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8050
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8051
    <javanative: 'java/sql/DriverManager' name: 'getCallerClassLoader()Ljava/lang/ClassLoader;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8052
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8053
    ^nativeContext 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8054
        sender sender 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8055
        receiver class theNonMetaclass
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8056
        classLoader
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8057
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8058
    "Modified: / 05-12-2011 / 11:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8059
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8060
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8061
!JavaVM class methodsFor:'native - java.text'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8062
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8063
_java_text_Bidi_nativeBidiChars: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8064
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8065
    <javanative: 'java/text/Bidi' name: 'nativeBidiChars(Ljava/text/Bidi;[CI[BIII)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8066
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8067
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8068
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8069
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8070
!JavaVM class methodsFor:'native - java.util'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8071
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8072
_java_util_ResourceBundle_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8073
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8074
    <javanative: 'java/util/ResourceBundle' name: 'getClassContext'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8075
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  8076
    "returns an array filled with the contextChain receivers classes.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8077
     What an ugly, messy interface."
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8078
    
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8079
    |chain con cls jClass|
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8080
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8081
    chain := OrderedCollection new.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8082
    con := thisContext sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8083
    [
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8084
        con notNil 
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8085
            and:[con receiver isMethod not or:[con receiver isJavaMethod not]]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8086
    ] whileTrue:[con := con sender.].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  8087
    con := con sender sender.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8088
    [con notNil] whileTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8089
        (true) "con isJavaContext" ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8090
            cls := con receiver class.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8091
            cls isMeta ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8092
                "/ t'was a static method
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8093
                cls := cls soleInstance
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8094
            ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8095
            cls isJavaClass ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8096
                jClass := self reflection javaClassObjectForClass:cls.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8097
                chain add:jClass.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8098
            ]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8099
        ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8100
        con := con sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8101
    ].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  8102
    ^(self classForName:'java.lang.Class') javaArrayClass withAll: chain
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8103
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8104
    "Created: / 05-01-1998 / 02:47:00 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8105
    "Modified: / 24-12-1998 / 00:34:57 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8106
    "Modified: / 28-01-2011 / 15:31:28 / Marcel Hlopko <hlopik@gmail.com>"
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  8107
    "Modified: / 08-12-2011 / 01:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8108
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8109
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8110
_java_util_TimeZone_getSystemTimeZoneID: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8111
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8112
    <javanative: 'java/util/TimeZone' name: 'getSystemTimeZoneID'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8113
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8114
    "JV@2011-06-25: TODO: finish, returning nil here means GMT"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8115
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8116
    ^ nil
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8117
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8118
    "Modified: / 25-06-2011 / 08:26:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8119
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8120
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8121
!JavaVM class methodsFor:'native - java.util.concurrent.atomic'!
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8122
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8123
_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8: nativeContext
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8124
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8125
    <javanative: 'java/util/concurrent/atomic/AtomicLong' name: 'VMSupportsCS8'>
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8126
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8127
    "Should be safe - say we don't support lockless updates"        
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8128
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8129
    ^ 0
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8130
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8131
    "Modified: / 07-08-2011 / 20:53:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8132
! !
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  8133
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8134
!JavaVM class methodsFor:'native - java.util.jar'!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8135
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8136
_java_util_jar_JarFile_getMetaInfEntryNames: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8137
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8138
    <javanative: 'java/util/jar/JarFile' name: 'getMetaInfEntryNames'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  8139
    "
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  8140
    private native String[] getMetaInfEntryNames();
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  8141
    "
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8142
    | zipArchive entries jentries |
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  8143
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  8144
    zipArchive := ZipCache at: (nativeContext receiver instVarNamed: #jzfile).
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8145
    entries := zipArchive entries select:[:entry|entry size > 9 and:[entry startsWith: 'META-INF/']].    
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8146
    jentries := Java java_lang_String javaArrayClass new: entries size.
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8147
    1 to: entries size do:[:i|
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8148
        jentries at: i put: (Java as_String: (entries at: i))
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8149
    ].
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8150
    ^jentries
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8151
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8152
    "Modified: / 05-08-2011 / 20:18:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8153
! !
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8154
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8155
!JavaVM class methodsFor:'native - java.util.zip'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8156
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8157
_java_util_zip_Adler32_updateBytes: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8158
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8159
    <javanative: 'java/util/zip/Adler32' name: 'updateBytes'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8160
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8161
    ^ UnimplementedNativeMethodSignal raise
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8162
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8163
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8164
_java_util_zip_CRC32_updateBytes: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8165
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8166
    <javanative: 'java/util/zip/CRC32' name: 'updateBytes(I[BII)I'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8167
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8168
    | crc b off len |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8169
    crc := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8170
    b   := nativeContext argAt: 2.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8171
    off := nativeContext argAt: 3.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8172
    len := nativeContext argAt: 4.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8173
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8174
    ^ZipStream crc32BytesIn:b from:off + 1  to: off + len crc:crc
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8175
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8176
    "Modified: / 05-12-2011 / 00:41:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8177
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8178
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  8179
_java_util_zip_Deflater_initIDs: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8180
    <javanative: 'java/util/zip/Deflater' name: 'initIDs'>
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  8181
Logger log: '_java_util_zip_Deflater_initIDs unnimplemented' severity:#info facility:#JVM.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  8182
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  8183
    "Modified: / 08-12-2011 / 21:11:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8184
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8185
1083
vranyj1
parents: 1081
diff changeset
  8186
_java_util_zip_Inflater_end: nativeContext
vranyj1
parents: 1081
diff changeset
  8187
vranyj1
parents: 1081
diff changeset
  8188
    <javanative: 'java/util/zip/Inflater' name: 'end(J)V'>
vranyj1
parents: 1081
diff changeset
  8189
vranyj1
parents: 1081
diff changeset
  8190
     "
vranyj1
parents: 1081
diff changeset
  8191
    private native static void reset(long addr);
vranyj1
parents: 1081
diff changeset
  8192
    "
vranyj1
parents: 1081
diff changeset
  8193
    | addr inflater |
vranyj1
parents: 1081
diff changeset
  8194
    addr := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
  8195
    inflater := ZipInflaters at: addr.
vranyj1
parents: 1081
diff changeset
  8196
    inflater end.
vranyj1
parents: 1081
diff changeset
  8197
vranyj1
parents: 1081
diff changeset
  8198
    "Modified: / 03-11-2011 / 22:51:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1081
diff changeset
  8199
!
vranyj1
parents: 1081
diff changeset
  8200
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8201
_java_util_zip_Inflater_getBytesRead: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8202
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8203
    <javanative: 'java/util/zip/Inflater' name: 'getBytesRead(J)J'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8204
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8205
    | addr inflater |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8206
    addr := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8207
    inflater := ZipInflaters at: addr.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8208
    ^inflater bytesRead.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8209
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8210
    "Modified: / 05-12-2011 / 00:56:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8211
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  8212
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8213
_java_util_zip_Inflater_getBytesWritten: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8214
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8215
    <javanative: 'java/util/zip/Inflater' name: 'getBytesWritten'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8216
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8217
    | addr inflater |
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8218
    addr := nativeContext argAt: 1.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8219
    inflater := ZipInflaters at: addr.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8220
    ^inflater bytesWritten.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8221
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  8222
    "Modified: / 31-08-2011 / 10:01:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8223
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8224
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8225
_java_util_zip_Inflater_inflateBytes: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8227
    <javanative: 'java/util/zip/Inflater' name: 'inflateBytes'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8228
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8229
    private native int inflateBytes(long addr, byte[] b, int off, int len)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8230
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8231
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8232
    | addr b off len inflater ret |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8233
    addr := nativeContext argAt: 1."long takes 2 slots"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8234
    b := nativeContext argAt: 3.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8235
    off := nativeContext argAt: 4.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8236
    len := nativeContext argAt: 5.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8237
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8238
    inflater := ZipInflaters at: addr.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8239
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8240
    ret := inflater inflate: b offset: off length: len inflater: nativeContext receiver.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8241
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8242
    ^ret.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8244
    "Created: / 30-04-2011 / 23:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8245
    "Modified: / 30-08-2011 / 12:39:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8246
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8247
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8248
_java_util_zip_Inflater_init: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8250
    <javanative: 'java/util/zip/Inflater' name: 'init'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8251
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8252
    
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8253
    | nowrap inflater |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8254
    nowrap := nativeContext argAt:1.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8255
    inflater := JavaZipSupport inflaterFor: self.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8256
    inflater init: nowrap.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8257
    ZipInflaters add: inflater.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8258
    ^ZipInflaters size.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8259
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8260
    "Created: / 01-02-1998 / 20:14:01 / cg"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8261
    "Modified: / 30-08-2011 / 12:38:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8262
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8264
_java_util_zip_Inflater_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8266
    <javanative: 'java/util/zip/Inflater' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8268
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8269
    "Nothing to do, used only to register natives"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8270
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8271
    "Created: / 30-04-2011 / 21:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8272
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8273
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8274
_java_util_zip_Inflater_reset: nativeContext
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8275
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8276
    <javanative: 'java/util/zip/Inflater' name: 'reset'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8277
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8278
    private native static void reset(long addr);
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8279
    "
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8280
    | addr inflater |
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  8281
    addr := nativeContext argAt: 1.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8282
    inflater := ZipInflaters at: addr.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8283
    inflater reset.
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8284
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8285
    "Created: / 01-02-1998 / 20:14:13 / cg"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  8286
    "Modified: / 30-08-2011 / 12:43:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8287
!
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  8288
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8289
_java_util_zip_ZipEntry_initFields: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8290
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8291
    <javanative: 'java/util/zip/ZipEntry' name: 'initFields'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8292
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8293
        | entry jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8295
    entry := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8296
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8297
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8299
    entry 
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  8300
        instVarNamed: #name     put: (Java as_String: zmember fileName);
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  8301
        instVarNamed: #time     put: -1"zmember lastModFileTime";
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8302
        instVarNamed: #crc      put: zmember crc32;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8303
        instVarNamed: #size     put: zmember uncompressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8304
        instVarNamed: #csize    put: zmember compressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8305
        instVarNamed: #method   put: zmember compressionMethod;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8306
        instVarNamed: #extra    put: zmember extraField;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8307
        instVarNamed: #comment  put: (zmember fileComment ifNotNil:[Java as_String: zmember fileComment]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8308
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8309
    "Created: / 01-04-2011 / 13:04:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  8310
    "Modified: / 05-12-2011 / 23:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8311
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8313
_java_util_zip_ZipEntry_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8315
    <javanative: 'java/util/zip/ZipEntry' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8317
        "hopefully nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8318
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8319
    "Created: / 01-04-2011 / 13:02:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8320
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8321
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8322
_java_util_zip_ZipFile_close: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8323
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8324
    <javanative: 'java/util/zip/ZipFile' name: 'close(J)V'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8325
1083
vranyj1
parents: 1081
diff changeset
  8326
    | jzfile zar |
vranyj1
parents: 1081
diff changeset
  8327
    jzfile := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
  8328
    zar := ZipCache at: jzfile.
vranyj1
parents: 1081
diff changeset
  8329
    zar close.
vranyj1
parents: 1081
diff changeset
  8330
    ZipCache at: jzfile put: nil.
vranyj1
parents: 1081
diff changeset
  8331
vranyj1
parents: 1081
diff changeset
  8332
    "Modified: / 03-11-2011 / 22:22:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8333
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  8334
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8335
_java_util_zip_ZipFile_freeEntry: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8337
    <javanative: 'java/util/zip/ZipFile' name: 'freeEntry'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8339
    | zipArchiveIndex  zipEntryIndex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8342
    zipArchiveIndex := nativeContext at: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8343
    zipEntryIndex := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8344
    zipEntryIndex = 0 ifFalse: [ ZipEntryCache at: zipEntryIndex put: nil ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8346
    "Modified: / 01-05-2011 / 13:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8347
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8348
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8349
_java_util_zip_ZipFile_getCSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8350
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8351
    <javanative: 'java/util/zip/ZipFile' name: 'getCSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8353
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8354
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8355
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8356
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8357
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8358
    ^zmember compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8359
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8360
    "Created: / 30-04-2011 / 21:50:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8361
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8362
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8363
_java_util_zip_ZipFile_getEntry: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8364
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8365
    <javanative: 'java/util/zip/ZipFile' name: 'getEntry'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8366
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  8367
    | zipArchive  filename  member |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8368
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8369
    zipArchive := ZipCache at: (nativeContext at: 1).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8370
    filename := Java as_ST_String: (nativeContext at: 3).
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  8371
    member := (zipArchive findMember: filename).
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8372
    member isNil ifTrue: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8373
        ^ 0 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8374
    ] ifFalse: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8375
        ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8376
            ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8377
            ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8378
        ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8379
    ]
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8380
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8381
    "Created: / 27-03-2011 / 16:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8382
    "Modified: / 01-04-2011 / 16:03:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  8383
    "Modified: / 18-08-2011 / 19:44:56 / jv"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8384
    "Modified: / 05-12-2011 / 11:18:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8385
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8386
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8387
_java_util_zip_ZipFile_getMethod: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8388
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8389
    <javanative: 'java/util/zip/ZipFile' name: 'getMethod'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8390
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8391
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8392
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8393
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8394
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8395
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8396
    ^zmember compressionMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8398
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8399
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8400
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8401
_java_util_zip_ZipFile_getNextEntry: nativeContext
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8402
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8403
    <javanative: 'java/util/zip/ZipFile' name: 'getNextEntry(JI)J'>
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8404
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8405
    | zipArchive  index i |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8406
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8407
    zipArchive := ZipCache at: (nativeContext at: 1).
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8408
    index := nativeContext at: 3.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8409
    i := 0.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8410
    zipArchive zipMembersDo:[:member |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8411
        index == i ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8412
            ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8413
                ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8414
                ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8415
            ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8416
        ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8417
        i := i + 1.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8418
    ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8419
    ^0
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8420
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8421
    "Modified: / 05-12-2011 / 11:19:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8422
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  8423
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8424
_java_util_zip_ZipFile_getSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8425
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8426
    <javanative: 'java/util/zip/ZipFile' name: 'getSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8428
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8429
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8430
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8431
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8432
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8433
    ^zmember uncompressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8435
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8436
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8438
_java_util_zip_ZipFile_getTotal: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8439
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8440
    <javanative: 'java/util/zip/ZipFile' name: 'getTotal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8441
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8442
    | zar |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8443
    zar := ZipCache at: (nativeContext at: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8444
    ^ zar entries size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8445
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8446
    "Modified: / 01-05-2011 / 13:31:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8447
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8448
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8449
_java_util_zip_ZipFile_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8451
    <javanative: 'java/util/zip/ZipFile' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8452
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8453
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8454
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8456
    "Created: / 23-03-2011 / 19:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8457
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8458
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8459
_java_util_zip_ZipFile_open: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8461
    <javanative: 'java/util/zip/ZipFile' name: 'open'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8462
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8463
    | path  mode  lastModTime  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8465
    path := Java as_ST_String: (nativeContext at: 1).
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  8466
    (path endsWith:'.jar') ifFalse:[self breakPoint: #jv]. 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8467
    mode := nativeContext at: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8468
    lastModTime := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8469
    result := path asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8470
    result ifNil: [ JavaVM throwZipException ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  8471
    ^[ 
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  8472
        ZipCache indexOf: ( ZipCache add: (ZipArchive readingFrom: result readStream) ) 
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  8473
    ] on: Error do:[:ex|
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  8474
        self throwIOExceptionWithMessage: 'Cannot open zip file: ', ex description
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  8475
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8476
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8477
    "Modified: / 01-04-2011 / 15:35:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  8478
    "Modified: / 05-12-2011 / 22:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8479
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8480
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8481
_java_util_zip_ZipFile_read: aJavaContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8482
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8483
    <javanative: 'java/util/zip/ZipFile' name: 'read'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8484
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8485
    
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8486
    | jzfile jzentry pos b off len zar zmember bytesToRead |
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8487
    jzfile := aJavaContext argAt: 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8488
    jzentry := aJavaContext argAt: 3. "first arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8489
    pos := aJavaContext argAt: 5. "jzentry arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8490
    b := aJavaContext argAt: 7.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8491
    off := aJavaContext argAt: 8.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8492
    len := aJavaContext argAt: 9.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8493
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8494
    zar := ZipCache at: jzfile.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8495
    zmember := ZipEntryCache at: jzentry.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8496
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8497
    bytesToRead := len min: (zmember compressedSize - pos).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8498
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8499
    ^zar nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off + 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8500
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8501
    "Created: / 30-04-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8502
    "Modified: / 01-05-2011 / 16:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8503
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8505
!JavaVM class methodsFor:'native - old-style'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8506
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8507
_AccessController_beginPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8508
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8509
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8510
    "Created: / 27.1.1998 / 18:18:11 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8511
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8512
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8513
_AccessController_endPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8514
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8515
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8516
    "Created: / 27.1.1998 / 18:18:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8517
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8519
_AudioDevice_audioClose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8520
    |device fd stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8522
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8523
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8524
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8525
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8526
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8527
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8528
		stream close.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8529
		device instVarNamed:'dev' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8530
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8531
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8532
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8533
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8534
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8535
    "Modified: / 13.1.1998 / 18:08:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8536
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8538
_AudioDevice_audioOpen:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8539
    |f stream fileNo|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8540
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8541
    NoAudio ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8542
	Transcript showCR:'JAVA: audio disabled'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8543
	^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8544
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8546
    Stream streamErrorSignal handle:[:ex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8547
	Stream streamErrorSignal handle:[:ex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8548
	    stream := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8549
	    ex return.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8550
	] do:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8551
	    stream := SoundStream writing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8552
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8553
    ] do:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8554
	stream := SoundStream writing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8555
	stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8556
	    stream setSampleRate:8000.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8557
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8558
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8559
    stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8560
"/        ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8562
	f := '/dev/audio' asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8563
	f exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8564
	    Transcript showCR:'JAVA: neither SoundStream nor /dev/audio available'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8565
	    ^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8566
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8567
	stream := f readWriteStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8568
	stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8569
	    Transcript showCR:'JAVA: /dev/audio exists, but cannot be opened'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8570
	    ^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8571
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8572
	fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8573
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8574
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8575
    fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8577
    FileOpenTrace ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8578
	('JAVA: opened audioDevice as FD ' , fileNo printString) infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8579
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8580
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8581
    ^ fileNo
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8582
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8583
    "Created: / 10.1.1998 / 15:45:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8584
    "Modified: / 14.10.1998 / 15:20:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8585
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8587
_AudioDevice_audioWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8588
    |device fd stream bytes count|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8590
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8591
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8592
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8593
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8594
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8595
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8596
		bytes := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8597
		count := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8598
		stream nextPutBytes:count from:bytes startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8599
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8600
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8601
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8602
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8603
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8604
    "Modified: / 13.1.1998 / 18:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8605
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8606
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8607
_BigInteger_plumbInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8608
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8609
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8610
    "Modified: / 12.11.1998 / 19:23:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8611
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8612
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8613
_CMM_cmmGetTagSize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8614
    "/ public static native synchronized int cmmGetTagSize (long arg1, int arg2, int[] arg3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8615
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8616
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8617
    UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8618
    ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8619
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8620
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8621
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8622
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8623
_CMM_cmmInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8624
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8625
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8626
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8627
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8629
_CMM_cmmLoadProfile:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8630
    "/ public static native synchronized int cmmLoadProfile (byte[] arg1, long[] arg2)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8631
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8632
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8633
    UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8634
    ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8635
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8636
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8637
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8639
_CRC32_update1:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8640
    "/ void update1 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8642
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8643
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8644
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8645
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8647
_CRC32_update:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8648
    "/ void update (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8649
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8650
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8651
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8652
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8653
    "Created: / 27.1.2000 / 03:09:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8654
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8655
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8656
_ClassLoader_createArrayClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8657
    "java.lang.Class createArrayClass (java.lang.String java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8658
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8659
    "resolve a new class as previously created by defineClass0"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8661
    |jClassLoader name elCls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8662
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8663
    jClassLoader := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8664
    name := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8665
    elCls := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8666
    elCls isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8667
        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8668
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8669
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8670
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8671
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8672
    "Modified: / 27.1.2000 / 02:36:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8673
    "Created: / 27.1.2000 / 02:56:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8674
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8675
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8676
_ClassLoader_defineClass0: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8677
    "create a new class from a given byteArray.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8678
     Here, construct a stream on it and pass the work to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8679
     JavaClassReader."
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8680
    
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8681
    | jClassLoader  jName  data  offset  length  inStream  newClass  jClass |
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8682
    self breakPoint: #mh.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8683
    jClassLoader := nativeContext receiver.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8684
    jName := nativeContext argAt: 1.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8685
    data := nativeContext argAt: 2.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8686
    offset := nativeContext argAt: 3.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8687
    length := nativeContext argAt: 4.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8688
    inStream := data readStream.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8689
    inStream position: offset + 1.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8690
    inStream readLimit: (offset + length).
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8691
    "Q: Is this method ever called in JDK 6? Isn't it just
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8692
     a leftover?"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8693
    self breakPoint: #jv info: 'Code below is obsolete...'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8694
    self breakPoint: #mh info: 'Code below is obsolete...'.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8695
    newClass := JavaClassRegistry loadStream: inStream loader: jClassLoader.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8696
    newClass isNil ifTrue: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8697
        Logger 
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8698
            log: '_ClassLoader_defineClass0: was not able to read given class'
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8699
            severity: #warn
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8700
            facility: #JVM.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8701
        self breakPoint: #mh.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8702
        ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8703
    ].
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8704
    newClass classLoader: jClassLoader.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8705
    jClass := self javaClassObjectForClass: newClass.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8706
    ^ jClass.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8707
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8708
    "Created: / 07-01-1998 / 12:35:10 / cg"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8709
    "Modified: / 24-01-1998 / 15:26:21 / cg"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8710
    "Modified: / 30-10-2011 / 12:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8711
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8712
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8713
_ClassLoader_findSystemClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8714
    ^ self _ClassLoader_findSystemClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8715
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8716
    "Created: / 18.11.1998 / 00:00:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8717
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8718
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8719
_ClassLoader_getSystemResource: nativeContext asStream0: returnAsStream 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8720
    "common code for
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8721
        getSystemResourceAsStream0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8722
        getSystemResourceAsName0"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8723
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8724
    | jString  rString  dir  file  text  inStream  url |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8725
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8726
    jString := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8727
    rString := Java as_ST_String: jString.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8728
    Java effectiveClassPath 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8729
        keysAndValuesDo: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8730
            :classPathIndex :aPath | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8731
            | f  zipFile  zar  data |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8732
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8733
            f := aPath asFilename.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8734
            ((zipFile := f withSuffix: 'jar') exists 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8735
                or: [ (zipFile := f withSuffix: 'zip') exists ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8736
                    ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8737
                        zar := ZipArchive oldFileNamed: zipFile.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8738
                        (Array 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8739
                            with: rString
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8740
                            with: rString asLowercase
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8741
                            with: rString asUppercase) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8742
                                do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8743
                                    :tryName | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8744
                                    | entry |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8745
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8746
                                    entry := zar findMember: tryName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8747
                                    entry notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8748
                                        returnAsStream ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8749
                                            data := zar extract: tryName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8750
                                            inStream := (self classForName: 'java.io.ByteArrayInputStream') 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8751
                                                        newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8752
                                            inStream perform: #'<init>([B)V' with: data.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8753
                                            ^ inStream.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8754
                                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8755
                                        url := 'systemResource:/ZIP' , (classPathIndex - 1) printString , '/+/' 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8756
                                                    , tryName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8757
                                        ^ Java as_String: url.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8758
                                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8759
                                ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8760
                    ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8761
                    ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8762
                        f exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8763
                            (file := f construct: rString) exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8764
                                (Java isExcludedFromClassPath: file) ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8765
                                    "/ Copy data from returned buffer into Java byte array. 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8766
                                    "/ self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8767
                                    returnAsStream ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8768
                                        text := file contents asString.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8769
                                        data := text asByteArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8770
                                        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8771
                                        "/ Create input stream using byte array 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8772
                                        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8773
                                        inStream := (Java classForName: 'java.io.ByteArrayInputStream') newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8774
                                        inStream perform: #'<init>([B)V' with: data.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8775
                                        ^ inStream.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8776
                                    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8777
                                    url := 'systemResource:/FILE/' , file pathName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8778
                                    self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8779
                                    ^ Java as_String: url
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8780
                                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8781
                            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8782
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8783
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8784
        ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8785
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8787
    "Created: / 08-01-1998 / 16:06:56 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8788
    "Modified: / 26-12-1998 / 17:14:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8789
    "Modified: / 22-11-2010 / 13:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8790
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8791
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8792
_ClassLoader_getSystemResourceAsName0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8793
    "/ java.lang.String getSystemResourceAsName0 (java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8794
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8795
    ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8796
	_ClassLoader_getSystemResource:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8797
	asStream0:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8798
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8799
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8800
_ClassLoader_getSystemResourceAsStream0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8801
    "/ java.lang.InputStream getSystemResourceAsStream0 (java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8803
    ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8804
	_ClassLoader_getSystemResource:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8805
	asStream0:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8806
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8807
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8808
_ClassLoader_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8809
     ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8810
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8811
    "Created: / 5.1.1998 / 02:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8812
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8813
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8814
_ClassLoader_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8815
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8817
    "Created: / 27.1.1998 / 18:37:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8818
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8819
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8820
_ClassLoader_resolveClass0: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8821
    "resolve a new class as previously created by defineClass0"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8822
    
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8823
    | jClassLoader  jCls  cls  anyUnresolved |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8824
self breakPoint:#mh.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8825
    jClassLoader := nativeContext receiver.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8826
    jCls := nativeContext argAt: 1.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8827
    jCls isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8828
        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8829
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8830
    ].
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8831
    cls := self reflection javaClassObjectForClass: jCls.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8832
    cls isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8833
        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8834
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8835
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8836
    ('JavaVM [info]: resolving class ' , cls fullName , ' ...') infoPrintCR.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8837
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8838
        do: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8839
            "correct this so it works with new resolving"
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8840
            self breakPoint: #mh.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8841
            JavaClassReader resolveClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8842
            
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8843
"/        JavaClassReader postLoadActions:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8844
            
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8845
            anyUnresolved := false.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8846
            cls constantPool do: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8847
                :entry | 
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8848
                (entry isMemberOf: JavaUnresolvedClassConstant) ifTrue: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8849
                    self halt: 'debugHalt'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8850
                    entry preResolve.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8851
                    self halt: 'debugHalt'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8852
                    anyUnresolved := true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8853
                ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8854
            ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8855
        ].
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8856
    anyUnresolved ifTrue: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8857
        jClassLoader notNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8858
            "/ any unresolved left -> try resolving with standard loader
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8859
            JavaClassReader classLoaderQuerySignal answer: nil
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8860
                do: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8861
                    cls constantPool do: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8862
                        :entry | 
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8863
                        (entry isMemberOf: JavaUnresolvedClassConstant) ifTrue: [
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8864
                            self halt: 'debugHalt'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8865
                            entry preResolve.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  8866
                            self halt: 'debugHalt'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8867
                        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8868
                    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8869
                ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8870
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8871
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8872
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8873
    "Created: / 07-01-1998 / 13:12:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8874
    "Modified: / 20-10-1998 / 19:01:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8875
    "Modified: / 28-01-2011 / 15:28:18 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8876
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8877
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8878
_ClassLoader_resolveClass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8879
    "void resolveClass (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8880
    "resolve a new class as previously created by defineClass0"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8881
    
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8882
    | jClassLoader  jCls  cls  loaderStub  anyUnresolved |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8883
    self breakPoint: #mh.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8884
    jClassLoader := nativeContext receiver.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8885
    jCls := nativeContext argAt: 1.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8886
    jCls isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8887
        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8888
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8889
    ].
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8890
    UnimplementedNativeMethodSignal raiseRequest.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8891
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8892
    "Modified: / 27.1.2000 / 02:36:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8893
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8894
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8895
_Class_getClassLoader:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8896
    "get a classes loader"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8897
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8898
    |jClass cls loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8899
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8900
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8901
    cls := self reflection classForJavaClassObject:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8902
    loader := cls classLoader.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8903
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8904
    "JV@2011-10-30: Is code below OK?"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8905
    cls isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8906
        loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8907
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8908
    ^ loader
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8909
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8910
    "Created: / 05-01-1998 / 02:51:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8911
    "Modified: / 04-01-1999 / 17:50:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8912
    "Modified: / 28-01-2011 / 15:18:57 / Marcel Hlopko <hlopik@gmail.com>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  8913
    "Modified (format): / 30-10-2011 / 12:23:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8914
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8915
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8916
_Class_getConstructor0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8917
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8918
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8919
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8920
    "Created: / 12.11.1998 / 18:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8921
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8923
_Class_getConstructors0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8924
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8926
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8927
    "Created: / 12.11.1998 / 18:55:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8928
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8930
_Class_getField0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8931
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8932
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8933
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8934
    "Created: / 12.11.1998 / 18:55:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8935
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8936
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8937
_Class_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8938
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8940
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8941
    "Created: / 12.11.1998 / 18:55:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8942
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8944
_Class_getMethod0:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8945
    "get a method, given a name and type spec"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8946
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8947
    |jClass cls jmName mName mTypes whichAccess argSig sel|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8948
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8949
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8950
    cls := self reflection javaClassObjectForClass:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8951
    jmName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8952
    mName := Java as_ST_String:jmName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8953
    mTypes := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8954
    whichAccess := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8955
    argSig := JavaMethod argSignatureFromArgTypeArray:mTypes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8956
    cls methodDictionary 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8957
        keysAndValuesDo:[:sel :mthd | 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8958
            |i1 i2 jMethod retTypeClass argTypes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8960
            JavaMethods notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8961
                (jMethod := JavaMethods at:mthd ifAbsent:nil) notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8962
                    ^ jMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8963
                ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8964
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8965
            mthd name printCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8966
            mName printCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8967
            mthd name = mName ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8968
                i1 := mthd signature indexOf:$(.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8969
                i2 := mthd signature indexOf:$) startingAt:(i1 + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8970
                (mthd signature copyFrom:i1 + 1 to:i2 - 1) = argSig ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8971
                    "/ found it - create a java.lang.reflect.Method for it.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8972
                    jMethod := (Java at:'java.lang.reflect.Method') new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8973
                    jMethod instVarNamed:'clazz' put:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8974
                    jMethod instVarNamed:'slot' put:sel.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8975
                    jMethod instVarNamed:'name' put:jmName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8976
                    retTypeClass := mthd returnTypeClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8977
                    retTypeClass isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8978
                        retTypeClass := #void
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8979
                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8980
                    argTypes := mthd argSignature.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8981
                    argTypes := argTypes 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8982
                                collect:[:s | 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8983
                                    |c|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8985
                                    c := Java at:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8986
                                    self javaClassObjectForClass:(c ? s asSymbol)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8987
                                ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8988
                    jMethod instVarNamed:'returnType'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8989
                        put:(self javaClassObjectForClass:retTypeClass).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8990
                    jMethod instVarNamed:'parameterTypes' put:argTypes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8991
                    JavaMethods isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8992
                        JavaMethods := IdentityDictionary new
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8993
                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8994
                    JavaMethods at:jMethod put:mthd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8995
                    JavaMethods at:mthd put:jMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8996
                    ^ jMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8997
                ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8998
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8999
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9000
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9001
    self throwExceptionClassName:'java.lang.NoSuchMethodException'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9002
        withMessage:'not yet implemented'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9003
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9005
    "Modified: / 22-10-1998 / 01:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9006
    "Modified: / 28-01-2011 / 14:36:26 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9007
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9008
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9009
_Class_getMethods0:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9010
    "get a method, given a name and type spec"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9011
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9012
    |jClass cls jmName mTypes whichAccess argSig sel methods|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9014
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9015
    cls := self reflection javaClassObjectForClass:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9016
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9017
    "/ 0 = PUBLIC (i.e. includes inherited) / 1 = DECLARED here
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9018
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9019
    whichAccess := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9020
    methods := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9021
    [cls isJavaClass] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9022
        cls methodDictionary 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9023
            keysAndValuesDo:[:sel :mthd | 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9024
                |i1 i2 jMethod argTypes retTypeClass|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9026
                mthd name printCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9027
                i1 := mthd signature indexOf:$(.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9028
                i2 := mthd signature indexOf:$) startingAt:(i1 + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9029
                
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9030
                "/ create a java.lang.reflect.Method for it.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9031
                
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9032
                jMethod := (Java at:'java.lang.reflect.Method') new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9033
                jMethod instVarNamed:'clazz' put:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9034
                jMethod instVarNamed:'slot' put:sel.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9035
                jMethod instVarNamed:'name' put:(Java as_String:mthd name).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9036
                retTypeClass := mthd returnTypeClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9037
                retTypeClass isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9038
                    retTypeClass := #void
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9039
                ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9040
                argTypes := mthd argSignature.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9041
                argTypes := argTypes 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9042
                            collect:[:s | 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9043
                                |c|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9045
                                c := Java at:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9046
                                self javaClassObjectForClass:(c ? s asSymbol)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9047
                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9048
                jMethod instVarNamed:'returnType'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9049
                    put:(self javaClassObjectForClass:retTypeClass).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9050
                jMethod instVarNamed:'parameterTypes' put:argTypes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9051
                
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9052
"/ (mthd name includesString:'setName') ifTrue:[self halt].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9053
                
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9054
                JavaMethods isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9055
                    JavaMethods := IdentityDictionary new
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9056
                ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9057
                JavaMethods at:jMethod put:mthd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9058
                JavaMethods at:mthd put:jMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9059
                methods add:jMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9060
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9061
        whichAccess == 1 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9062
            "/ local methods only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9063
            cls := nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9064
        ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9065
            cls := cls superclass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9066
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9067
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9068
    methods := methods asArray.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9069
    ^ methods.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9070
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9071
    "Modified: / 22-10-1998 / 01:53:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9072
    "Modified: / 28-01-2011 / 14:36:58 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9073
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9075
_Class_getName:nativeContext 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9076
    "get a classes name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9077
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9078
    |jClass cls nm|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9079
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9080
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9081
    cls := self reflection javaClassObjectForClass:jClass.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9082
    cls isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9083
        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9084
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9085
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9086
        nm := (cls fullName copyReplaceAll:$/ with:$.)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9087
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9088
        cls isSymbol ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9089
            nm := cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9090
        ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9091
            nm := cls name
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9092
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9093
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9094
    ^ Java as_String:nm.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9095
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9096
    "Modified: / 30-12-1998 / 21:13:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9097
    "Modified: / 28-01-2011 / 15:30:34 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9098
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9099
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9100
_Class_getSigners:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9101
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9102
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9103
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9104
    "Created: / 12.11.1998 / 18:55:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9105
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9106
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
  9107
_Class_newInstance: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9108
    "get an instance for a java.lang.Class"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9109
    
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
  9110
    | jClass  cls  newInst |
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
  9111
self breakPoint:#mh.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9112
    jClass := nativeContext receiver.
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
  9113
    cls := self reflection javaClassObjectForClass: jClass.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9114
    cls classInit.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9115
    newInst := cls newCleared.
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
  9116
    newInst perform: #'<init>()V'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9117
    ^ newInst
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9118
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9119
    "Created: / 02-01-1998 / 22:41:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9120
    "Modified: / 15-01-1998 / 00:57:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9121
    "Modified: / 28-01-2011 / 14:12:25 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9122
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9124
_Class_setSigners:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9125
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9126
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9127
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9128
    "Created: / 12.11.1998 / 18:55:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9129
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9131
_ColorModel_deletepData:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9132
    "/ void deletepData ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9133
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9135
    "Created: / 12.11.1998 / 19:22:05 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9136
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9138
_ColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9139
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9141
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9142
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9144
_Constructor_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9145
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9146
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9147
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9149
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9150
    "Created: / 27.1.2000 / 02:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9151
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9153
_Constructor_newInstance:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9154
    "/ java.lang.Object newInstance (java.lang.Object[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9156
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9157
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9158
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9159
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9161
_Double_doubleToLongBits:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9162
    |f i|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9164
    f := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9165
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9166
    UninterpretedBytes isBigEndian ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9167
	i := f basicAt:8. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9168
	i := i bitOr:((f basicAt:7) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9169
	i := i bitOr:((f basicAt:6) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9170
	i := i bitOr:((f basicAt:5) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9171
	i := i bitOr:((f basicAt:4) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9172
	i := i bitOr:((f basicAt:3) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9173
	i := i bitOr:((f basicAt:2) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9174
	i := i bitOr:((f basicAt:1) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9175
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9176
	i := f basicAt:1. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9177
	i := i bitOr:((f basicAt:2) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9178
	i := i bitOr:((f basicAt:3) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9179
	i := i bitOr:((f basicAt:4) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9180
	i := i bitOr:((f basicAt:5) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9181
	i := i bitOr:((f basicAt:6) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9182
	i := i bitOr:((f basicAt:7) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9183
	i := i bitOr:((f basicAt:8) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9184
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9186
    ^ i.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9187
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9188
    "Created: / 4.1.1998 / 01:39:12 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9189
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9191
_Double_valueOf0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9192
    |s d|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9193
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9194
    s := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9195
    s notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9196
	s := Java as_ST_String:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9197
	d := Float readFrom:s onError:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9198
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9199
    d isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9200
	self throwNumberFormatException.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9201
	"/ not reached
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9202
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9204
    ^ d
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9205
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9206
    "Modified: / 8.8.1997 / 12:03:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9207
    "Created: / 7.1.1998 / 11:09:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9208
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9210
_Field_get:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9211
    "/ java.lang.Object get (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9213
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9214
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9215
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9216
    "Created: / 27.1.2000 / 03:04:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9217
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9218
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9219
_Field_getBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9220
    "/ boolean getBoolean (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9222
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9223
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9224
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9225
    "Created: / 27.1.2000 / 03:05:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9226
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9227
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9228
_Field_getByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9229
    "/ byte getByte (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9230
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9231
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9233
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9234
    "Created: / 27.1.2000 / 03:05:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9235
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9237
_Field_getChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9238
    "/ char getChar (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9240
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9242
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9243
    "Created: / 27.1.2000 / 03:03:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9244
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9245
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9246
_Field_getDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9247
    "/ double getDouble (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9249
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9251
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9252
    "Created: / 27.1.2000 / 03:07:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9253
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9255
_Field_getFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9256
    "/ float getFloat (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9258
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9259
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9260
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9261
    "Created: / 27.1.2000 / 03:05:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9262
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9264
_Field_getInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9265
    "/ int getInt (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9266
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9267
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9268
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9269
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9270
    "Created: / 27.1.2000 / 03:04:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9271
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9272
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9273
_Field_getLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9274
    "/ long getLong (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9275
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9276
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9277
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9278
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9279
    "Created: / 27.1.2000 / 03:05:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9280
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9281
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9282
_Field_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9283
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9285
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9286
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9287
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9288
    "Created: / 27.1.2000 / 03:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9289
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9290
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9291
_Field_getShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9292
    "/ unsigned short getShort (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9294
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9295
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9296
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9297
    "Created: / 27.1.2000 / 03:07:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9298
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9299
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9300
_Field_set:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9301
    "/ void set (java.lang.Object java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9303
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9304
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9305
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9306
    "Created: / 27.1.2000 / 03:04:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9307
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9308
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9309
_Field_setBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9310
    "/ void setBoolean (java.lang.Object boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9311
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9312
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9313
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9314
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9315
    "Created: / 27.1.2000 / 03:06:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9316
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9317
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9318
_Field_setByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9319
    "/ void setByte (java.lang.Object byte)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9321
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9323
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9324
    "Created: / 27.1.2000 / 03:06:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9325
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9327
_Field_setChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9328
    "/ void setChar (java.lang.Object char)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9329
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9330
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9331
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9332
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9333
    "Created: / 27.1.2000 / 03:03:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9334
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9335
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9336
_Field_setDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9337
    "/ void setDouble (java.lang.Object double)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9339
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9341
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9342
    "Created: / 27.1.2000 / 03:04:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9343
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9345
_Field_setFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9346
    "/ void setFloat (java.lang.Object float)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9348
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9350
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9351
    "Created: / 27.1.2000 / 03:06:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9352
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9354
_Field_setInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9355
    "/ void setInt (java.lang.Object int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9357
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9359
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9360
    "Created: / 27.1.2000 / 03:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9361
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9363
_Field_setLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9364
    "/ void setLong (java.lang.Object long)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9366
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9367
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9368
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9369
    "Created: / 27.1.2000 / 03:06:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9370
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9371
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9372
_Field_setShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9373
    "/ void setShort (java.lang.Object unsigned short)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9374
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9375
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9377
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9378
    "Created: / 27.1.2000 / 03:03:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9379
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9381
_FileDescriptor_initSystemFD:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9382
    |descriptor fileNo idx myStream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9383
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9384
    descriptor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9385
    fileNo := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9387
    fileNo == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9388
	myStream := Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9389
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9390
	fileNo == 1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9391
	   myStream := JavaConsoleStream ? Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9392
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9393
	    fileNo == 2 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9394
		myStream := JavaConsoleStream ? Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9395
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9396
		self halt:'invalid fileNo given'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9397
		self internalError:'invalid fileNo given'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9398
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9399
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9400
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9402
    self setOpenFile:myStream at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9403
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9404
    descriptor instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9405
    ^ descriptor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9407
    "Modified: / 27.1.1998 / 18:15:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9408
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9410
_FileDescriptor_valid:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9411
    "/ boolean valid ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9412
    |descriptor fileNo stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9414
    descriptor := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9415
    fileNo := descriptor instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9416
    stream := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9417
    stream isNil ifTrue:[^ 0]. "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9418
    stream isOpen ifFalse:[^ 0].  "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9420
    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9421
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9422
    "Modified: / 11.12.1998 / 13:02:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9423
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9425
_FileInputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9426
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9428
    "Created: / 4.1.1998 / 17:45:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9429
    "Modified: / 4.2.1998 / 15:20:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9430
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9432
_FileInputStream_skip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9433
    "/ long skip (long)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9434
    |file nSkip nSkipped|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9436
    file := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9437
    nSkip := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9438
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9439
    file == Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9440
	file := StdinReplacementFileQuerySignal raiseRequest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9441
	file isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9442
	    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9443
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9444
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9446
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9447
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9448
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9450
    file skip:nSkip.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9451
    ^ nSkip
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9453
    "Modified: / 27.1.1999 / 20:36:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9454
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9456
_FileOutputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9457
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9459
    "Created: / 13.1.1998 / 09:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9460
    "Modified: / 4.2.1998 / 15:20:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9461
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9463
_File_canRead0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9464
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9466
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9467
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9468
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9469
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9471
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9472
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9473
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9475
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9476
	(f := path asFilename) isReadable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9477
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9478
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9479
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9480
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9481
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9482
    "Created: / 4.1.1998 / 18:09:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9483
    "Modified: / 27.1.1999 / 18:57:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9484
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9486
_File_canWrite0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9487
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9489
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9490
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9491
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9492
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9493
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9494
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9495
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9496
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9497
	(f := path asFilename) isWritable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9498
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9499
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9500
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9501
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9503
    "Created: / 4.2.1998 / 00:19:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9504
    "Modified: / 27.1.1999 / 18:57:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9505
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9506
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9507
_File_canonPath:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9508
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9509
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9510
    |jPath path realPath|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9511
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9512
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9513
    jPath isNil ifTrue:[^ jPath].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9514
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9515
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9516
    realPath := path asFilename pathName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9517
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9518
    ^ Java as_String:realPath
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9519
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9520
    "Created: / 27.1.1998 / 18:35:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9521
    "Modified: / 27.1.1998 / 21:36:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9522
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9523
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9524
_File_delete0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9525
    "/ boolean delete0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9526
    |oldFile oldPath oldF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9528
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9529
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9530
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9532
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9533
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9535
    oldF exists ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9536
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9537
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9539
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Delete of ''' , oldPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9540
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9541
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9542
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9544
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9545
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9546
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9547
	oldF delete.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9548
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9549
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9550
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9552
    "Modified: / 30.12.1998 / 20:15:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9553
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9555
_File_exists0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9556
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9558
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9559
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9560
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9561
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9562
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9563
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9564
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9565
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9566
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9567
	    ^ 1 "TRUE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9568
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9569
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9570
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9572
    "Created: / 5.1.1998 / 02:07:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9573
    "Modified: / 27.1.1999 / 18:57:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9574
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9575
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9576
_File_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9577
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9578
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9579
    "Created: / 27.1.1998 / 18:25:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9580
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9581
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9582
_File_isAbsolute:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9583
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9585
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9586
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9587
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9588
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9589
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9590
	(f := path asFilename) isAbsolute ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9591
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9592
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9593
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9594
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9596
    "Created: / 11.1.1998 / 09:54:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9597
    "Modified: / 20.10.1998 / 20:59:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9598
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9600
_File_isDirectory0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9601
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9603
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9604
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9605
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9606
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9607
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9608
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9609
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9610
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9611
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9612
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9613
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9614
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9615
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9617
    "Created: / 7.1.1998 / 10:31:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9618
    "Modified: / 27.1.1999 / 18:58:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9619
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9620
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9621
_File_isFile0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9622
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9624
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9625
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9626
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9627
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9628
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9629
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9630
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9631
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9632
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9633
	    f isDirectory ifFalse:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9634
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9635
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9636
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9638
    "Created: / 11.1.1998 / 11:40:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9639
    "Modified: / 27.1.1999 / 18:58:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9640
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9642
_File_lastModified0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9643
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9645
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9646
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9647
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9648
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9649
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9650
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9651
	    ^ f modificationTime getMilliseconds.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9652
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9653
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9654
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9656
    "Created: / 4.2.1998 / 16:50:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9657
    "Modified: / 20.10.1998 / 21:00:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9658
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9660
_File_length0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9661
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9663
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9664
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9665
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9666
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9667
	    thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9668
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9669
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9670
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9671
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9672
	    ^ f fileSize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9673
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9674
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9675
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9677
    "Created: / 7.1.1998 / 12:18:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9678
    "Modified: / 27.1.1999 / 18:57:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9679
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9680
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9681
_File_list0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9682
    |file path f files|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9684
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9685
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9686
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9687
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9688
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9689
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9690
	    f isDirectory ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9691
		files := f directoryContents asArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9692
		files := files collect:[:nm | Java as_String:nm].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9693
		^ files
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9694
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9695
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9696
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9697
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9699
    "Created: / 14.1.1998 / 21:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9700
    "Modified: / 20.10.1998 / 21:00:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9701
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9703
_File_mkdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9704
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9706
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9707
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9708
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9709
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9710
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9711
	f := path asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9712
	(f exists and:[f isDirectory]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9713
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9714
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9716
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9717
	    (self confirm:('JAVA Security check\\Create directory ''' , path , '''.\Grant permission ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9718
	    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9719
		^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9720
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9721
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9722
	OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9723
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9724
	] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9725
	    f makeDirectory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9726
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9727
	f  exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9728
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9729
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9730
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9731
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9733
    "Created: / 4.2.1998 / 00:19:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9734
    "Modified: / 4.12.1998 / 14:04:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9735
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9737
_File_renameTo0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9738
    "/ void renameTo0 (java.io.File)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9740
    |oldFile newFile oldPath newPath oldF newF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9742
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9743
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9744
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9745
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9746
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9747
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9749
    newFile := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9750
    newPath := newFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9751
    newPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9752
    newPath := Java as_ST_String:newPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9754
    newF := newPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9755
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9756
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Rename of ''' , oldPath , ''' to ''' , newPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9757
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9758
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9759
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9760
    oldF directory pathName ~= newF directory pathName ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9761
	(self checkWritePermissionOfDirectory:newF directory message:('JAVA Security check\\Rename of ''' , oldPath , ''' to ''' , newPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9762
	ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9763
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9764
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9765
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9766
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9767
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9768
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9769
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9770
	oldF renameTo:newF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9771
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9772
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9773
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9775
    "Modified: / 3.12.1998 / 21:01:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9776
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9777
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9778
_File_rmdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9779
    "/ boolean rmdir0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9780
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9782
    "Modified: / 12.11.1998 / 19:01:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9783
    "Created: / 12.11.1998 / 19:03:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9784
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9786
_Float_floatToIntBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9787
    |f i|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9789
    f := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9791
    UninterpretedBytes isBigEndian ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9792
	i := f basicAt:4. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9793
	i := i bitOr:((f basicAt:3) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9794
	i := i bitOr:((f basicAt:2) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9795
	i := i bitOr:((f basicAt:1) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9796
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9797
	i := f basicAt:1. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9798
	i := i bitOr:((f basicAt:2) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9799
	i := i bitOr:((f basicAt:3) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9800
	i := i bitOr:((f basicAt:4) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9801
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9802
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9803
    ^ i.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9805
    "Created: / 4.1.1998 / 01:25:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9806
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9807
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9808
_FontDescriptor_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9809
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9810
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9811
    "Created: / 28.1.1998 / 22:30:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9812
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9813
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9814
_Font_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9815
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9817
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9818
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9819
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9820
_GifImageDecoder_parseImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9821
    |decoder width height bool1 depth subHdrBytes dstBytes i1 i2 colorModel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9822
     stream byte compressedData compressedSize index count data 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9823
     leftOffs topOffs codeLen flags pixelStore clrModel t buffSize 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9824
     countGot countGot2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9825
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9826
    decoder := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9828
    i1 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9829
    i2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9830
    width := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9831
    height := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9832
    bool1 := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9833
    depth := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9834
    subHdrBytes := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9835
    dstBytes := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9836
    colorModel := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9837
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9838
    leftOffs := subHdrBytes wordAt:1 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9839
    topOffs := subHdrBytes wordAt:3 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9840
    width := subHdrBytes wordAt:5 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9841
    height := subHdrBytes wordAt:7 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9842
    flags := subHdrBytes at:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9843
    codeLen := subHdrBytes at:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9844
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9845
    stream := decoder instVarNamed:'input'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9846
    pixelStore := decoder instVarNamed:'store'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9847
    pixelStore isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9848
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9849
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9850
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9851
    buffSize := (width * height // 2) max:4096.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9852
    compressedData := ByteArray uninitializedNew:buffSize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9853
    "get compressed data"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9854
    index := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9855
    count := stream perform:#'read()I'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9857
    [count notNil and:[count > 0]] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9858
	(index + count) > buffSize ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9859
	    t := ByteArray uninitializedNew:(buffSize * 2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9860
	    t replaceFrom:1 to:buffSize with:compressedData startingAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9861
	    compressedData := t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9862
	    buffSize := buffSize * 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9863
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9864
	[count ~~ 0] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9865
	    countGot := stream 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9866
			perform:#'read([BII)I' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9867
			with:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9868
			with:index-1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9869
			with:count.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9870
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9871
	    countGot > 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9872
		count := count - countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9873
		index := index + countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9874
	    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9875
		count := -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9876
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9877
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9878
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9879
	count >= 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9880
	    count := stream perform:#read.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9881
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9882
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9883
    compressedSize := index - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9884
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9885
    data := pixelStore perform:#'allocateLines(I)Ljava/lang/Object;' with:height.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9886
    (data isMemberOf:ByteArray) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9887
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9888
	^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9889
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9890
"/    'GIFReader: decompressing ...' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9891
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9893
    GIFReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9894
	decompressGIFFrom:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9895
	count:compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9896
	into:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9897
	startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9898
	codeLen:(codeLen + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9899
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9900
    clrModel := pixelStore instVarNamed:'colormodel'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9901
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9902
    pixelStore 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9903
	perform:#'setPixels(IIII[BII)Z'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9904
	withArguments:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9905
	    (Array 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9906
		with:0        "/ x
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9907
		with:0        "/ y
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9908
		with:width    "/ w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9909
		with:height   "/ h
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9910
		with:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9911
		with:0        "/ offs
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9912
		with:width).   "/ scanSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9914
    pixelStore  perform:#'imageComplete()V'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9915
"/        perform:#'imageComplete(I)V' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9916
"/        with:((Java at:'java.awt.image.ImageConsumer') instVarNamed:'STATICIMAGEDONE').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9917
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9918
"/ self internalError:'breakPoint'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9919
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9921
    "Modified: / 10.4.1998 / 14:31:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9922
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9924
_ImageRepresentation_disposeImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9925
    |imgRep img|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9926
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9927
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9928
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9929
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9930
    (img notNil and:[img ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9931
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9932
	    ImageStretchCache removeKey:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9933
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9934
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9935
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9936
    imgRep instVarNamed:'pData' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9937
"/    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9939
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9940
    "Modified: / 17.1.1998 / 13:26:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9941
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9943
_ImageRepresentation_finish:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9944
    |imgRep bool|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9945
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9946
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9947
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9948
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9949
"/    'JAVA: ImageRepresentation_finish ignored for now' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9950
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9951
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9952
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9953
    "Created: / 8.1.1998 / 00:11:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9954
    "Modified: / 6.2.1998 / 02:12:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9955
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9957
_ImageRepresentation_imageDraw:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9958
    |imgRep x y img deviceImage jGraphics gc clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9960
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9961
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9962
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9963
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9964
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9965
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9966
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9967
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9968
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9969
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9970
    x := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9971
    y := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9972
    clr := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9974
    deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9975
    deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9976
	imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9977
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9978
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9979
    deviceImage displayOn:gc x:x y:y.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9980
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9981
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9982
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9983
    "Modified: / 25.11.1998 / 15:36:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9984
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9985
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9986
_ImageRepresentation_imageStretch:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9987
    |imgRep x1 y1 x2 y2 srcX1 srcY1 w h 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9988
     img deviceImage jGraphics gc clr stretchWidth stretchHeight|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9990
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9991
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9992
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9993
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9994
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9995
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9996
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9997
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9998
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9999
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10001
    x1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10002
    y1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10003
    x2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10004
    y2:= nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10005
    srcX1 := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10006
    srcY1 := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10007
    w := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10008
    h := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10009
    clr := nativeContext argAt:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10011
    (srcX1 ~~ 0 or:[srcY1 ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10012
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10013
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10014
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10015
    (w ~~ img width or:[h ~~ img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10016
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10017
	^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10018
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10019
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10020
    "/ TODO: remember magnified images somewhere for a while,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10021
    "/ to avoid repeated action ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10022
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10023
    stretchWidth := (x2-x1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10024
    stretchHeight := (y2-y1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10026
    (stretchWidth == img width
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10027
    and:[stretchHeight == img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10028
	deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10029
	deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10030
	    imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10031
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10032
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10033
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10034
	    deviceImage := ImageStretchCache at:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10035
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10036
	(deviceImage isNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10037
	or:[deviceImage width ~~ stretchWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10038
	or:[deviceImage height ~~ stretchHeight]]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10039
	    deviceImage := (img magnifiedTo:stretchWidth@stretchHeight) onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10040
	    ImageStretchCache isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10041
		ImageStretchCache := WeakIdentityDictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10042
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10043
	    ImageStretchCache at:img put:deviceImage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10044
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10045
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10046
    deviceImage displayOn:gc x:x1 y:y1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10048
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10049
    "Modified: / 15.1.1998 / 13:14:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10050
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10052
_ImageRepresentation_offscreenInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10053
    |imgRep jclr w h form screenDevice|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10054
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10055
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10056
    jclr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10057
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10058
    w := imgRep instVarNamed:'width'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10059
    h := imgRep instVarNamed:'height'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10060
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10061
    screenDevice := Screen current.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10062
    form := Form width:w height:h depth:(screenDevice depth) on:screenDevice.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10063
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10064
    imgRep instVarNamed:'pData' put:form.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10065
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10066
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10067
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10068
    "Modified: / 17.1.1998 / 12:36:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10069
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10070
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10071
_ImageRepresentation_setBytePixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10072
    |imgRep x y w h clrModel bytes offs i2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10073
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10074
     scanLineWidth nBytes srcIdx dstIdx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10075
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10076
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10077
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10078
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10079
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10080
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10081
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10082
    bytes := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10083
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10084
    scanLineWidth := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10086
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10087
    (clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10088
	rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10089
	cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10090
	rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10091
	    keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10092
		cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10093
	    ].        
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10094
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10095
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10096
    opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10097
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10098
	transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10099
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10101
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10102
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10103
"/        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10104
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10105
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10106
    (offs ~~ 0 or:[scanLineWidth ~~ w]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10107
	nBytes := ByteArray new:w*h.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10108
	srcIdx := offs+1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10109
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10110
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10111
	    nBytes replaceFrom:dstIdx to:(dstIdx+w-1) with:bytes startingAt:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10112
	    srcIdx := srcIdx + scanLineWidth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10113
	    dstIdx := dstIdx + w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10114
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10115
	bytes := nBytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10116
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10117
    img := Image width:w height:h depth:depth fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10118
    cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10119
	img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10120
	img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10121
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10122
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10123
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10124
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10125
		    for:bytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10126
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10127
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10128
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10129
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10130
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10131
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10132
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10133
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10134
    "Modified: / 21.10.1998 / 00:35:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10135
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10136
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10137
_ImageRepresentation_setIntPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10138
    |imgRep x y w h clrModel ints offs scanLineWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10139
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10140
     bytes srcIdx dstIdx val red green blue
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10141
     redMask greenMask blueMask redShift greenShift blueShift|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10143
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10144
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10145
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10146
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10147
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10148
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10149
    ints := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10150
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10151
    scanLineWidth := nativeContext argAt:8.  "/ scanLineWidth ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10152
    opaque := false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10153
offs ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10154
 self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10155
].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10157
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10158
    clrModel class == (Java at:'java.awt.image.DirectColorModel') ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10159
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10160
	(clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10161
	    rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10162
	    cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10163
	    rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10164
		keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10165
		    cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10166
		].        
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10167
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10168
	opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10169
	opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10170
	    transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10171
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10172
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10173
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10174
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10175
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10176
"/        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10177
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10178
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10179
    depth == 32 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10180
	"/ temporary kludge - ony use 24 bits/pixel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10181
	bytes := ByteArray new:w*h*3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10182
	srcIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10183
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10184
	redMask := clrModel instVarNamed:'red_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10185
	greenMask := clrModel instVarNamed:'green_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10186
	blueMask := clrModel instVarNamed:'blue_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10187
	redShift := (clrModel instVarNamed:'red_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10188
	greenShift := (clrModel instVarNamed:'green_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10189
	blueShift := (clrModel instVarNamed:'blue_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10191
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10192
	    1 to:w do:[:x |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10193
		val := ints at:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10194
		red := (val bitAnd:redMask) bitShift:redShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10195
		green := (val bitAnd:greenMask) bitShift:greenShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10196
		blue := (val bitAnd:blueMask) bitShift:blueShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10197
		bytes at:dstIdx put:red.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10198
		bytes at:dstIdx+1 put:green.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10199
		bytes at:dstIdx+2 put:blue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10200
		dstIdx := dstIdx + 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10201
		srcIdx := srcIdx + 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10202
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10203
	    srcIdx := srcIdx + (scanLineWidth - w).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10204
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10205
	img := Depth24Image width:w height:h depth:24 fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10206
	img photometric:#rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10207
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10208
	scanLineWidth ~~ w ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10209
	    self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10210
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10211
	img := Image width:w height:h depth:depth fromArray:ints.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10212
	cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10213
	    img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10214
	    img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10215
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10216
	    img photometric:#rgb
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10217
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10218
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10219
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10220
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10221
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10222
		    for:ints
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10223
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10224
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10225
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10227
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10228
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10229
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10230
    "Created: / 1.2.1998 / 17:38:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10231
    "Modified: / 21.10.1998 / 00:35:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10232
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10234
_InetAddressImpl_getHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10235
    "/ java.lang.String getHostByAddr (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10236
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10238
    "Created: / 12.11.1998 / 19:08:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10239
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10241
_InetAddressImpl_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10242
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10243
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10245
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10246
    "Created: / 5.1.1998 / 02:05:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10247
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10249
_InetAddressImpl_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10250
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10251
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10252
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10254
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10256
    ^ (Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10258
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10259
    "Created: / 5.1.1998 / 02:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10260
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10261
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10262
_InetAddressImpl_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10263
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10265
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10266
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10267
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10268
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10270
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10271
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10272
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10273
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10274
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10275
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10276
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10277
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10278
    "Created: / 7.1.1998 / 18:51:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10279
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10281
_InetAddressImpl_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10282
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10283
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10284
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10286
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10287
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10288
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10289
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10290
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10291
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10292
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10293
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10294
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10295
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10296
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10297
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10298
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10299
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10300
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10301
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10302
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10304
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10306
    "Created: / 5.1.1998 / 02:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10307
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10308
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10310
_InetAddress_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10311
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10312
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10313
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10314
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10315
    "Created: / 17.11.1998 / 23:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10316
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10317
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10318
_InetAddress_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10319
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10321
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10323
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10324
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10325
    ^ Java as_String:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10327
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10328
    "Created: / 17.11.1998 / 23:54:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10329
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10330
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10331
_InetAddress_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10332
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10334
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10335
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10336
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10337
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10339
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10340
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10341
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10342
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10343
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10344
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10346
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10347
    "Created: / 17.11.1998 / 23:56:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10348
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10350
_InetAddress_lookupHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10351
    "java.lang.Object[] lookupHostByAddr (int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10353
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10355
    "Created: / 27.1.2000 / 02:59:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10356
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10357
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10358
_InetAddress_lookupHostByName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10359
    "java.lang.Object[] lookupHostByName (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10361
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10363
    "Modified: / 27.1.2000 / 02:58:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10364
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10366
_InetAddress_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10367
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10369
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10370
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10371
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10372
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10374
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10375
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10376
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10377
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10378
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10379
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10380
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10381
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10382
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10383
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10385
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10386
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10387
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10388
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10389
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10390
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10391
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10392
    "Created: / 17.11.1998 / 23:54:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10393
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10394
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10395
_Inflater_end0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10396
    "/ void end0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10398
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10400
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10401
    "Created: / 27.1.2000 / 03:11:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10402
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10404
_Inflater_getAdler0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10405
    "/ int getAdler0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10407
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10408
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10409
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10410
    "Created: / 27.1.2000 / 03:12:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10411
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10412
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10413
_Inflater_getTotalIn0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10414
    "/ int getTotalIn0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10415
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10416
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10418
    "Created: / 27.1.2000 / 03:10:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10419
    "Modified: / 27.1.2000 / 03:11:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10420
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10422
_Inflater_getTotalOut0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10423
    "/ int getTotalOut0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10425
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10427
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10428
    "Created: / 27.1.2000 / 03:12:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10429
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10431
_Inflater_inflate0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10432
    "/ int inflate0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10433
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10434
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10435
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10436
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10437
    "Created: / 27.1.2000 / 03:11:39 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10438
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10439
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10440
_Inflater_reset0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10441
    "/ void reset0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10443
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10444
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10445
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10446
    "Created: / 27.1.2000 / 03:11:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10447
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10448
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10449
_Inflater_setDictionary0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10450
    "/ void setDictionary0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10451
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10452
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10453
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10454
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10455
    "Created: / 27.1.2000 / 03:10:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10456
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10458
_InputThread_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10459
    self _WToolkit_eventLoop:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10461
    "Created: / 28.1.1998 / 22:34:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10462
    "Modified: / 28.1.1998 / 22:35:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10463
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10465
_Introspector_getMethodDescriptor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10466
    "java.lang.String getMethodDescriptor (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10467
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10468
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10470
    "Created: / 27.1.2000 / 02:47:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10471
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10472
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10473
_Introspector_getMethodParameterCount:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10474
    "int getMethodParameterCount (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10475
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10476
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10477
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10478
    "Created: / 27.1.2000 / 02:49:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10479
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10480
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10481
_Introspector_getPublicDeclaredMethods0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10482
    "java.lang.reflect.Method[] getPublicDeclaredMethods0 (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10483
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10484
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10485
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10486
    "Created: / 27.1.2000 / 02:48:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10487
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10488
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10489
_JPEGImageDecoder_readImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10490
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10491
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10492
    "Created: / 12.11.1998 / 18:53:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10493
    "Modified: / 12.11.1998 / 18:53:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10494
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10495
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10496
_MButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10497
    ^ self _WButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10498
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10499
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10500
_MCanvasPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10501
    |jCanvasPeer jFrame frame subView|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10503
    jCanvasPeer := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10505
    jFrame := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10506
    jFrame isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10507
	self halt:'no frame in canvasPeer create'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10508
	self internalError:'no frame in canvasPeer create'.     
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10509
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10510
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10511
    frame := jFrame instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10512
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10513
    subView := JavaView in:frame.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10514
    subView delegate:self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10515
    subView javaPeer:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10517
    self createdWindowsView:subView for:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10519
    WindowCreationTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10520
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10521
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10522
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10523
    "Modified: / 16.1.1998 / 13:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10524
    "Created: / 18.11.1998 / 00:14:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10525
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10526
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10527
_MComponentPeer_cacheInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10528
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10529
    "Created: / 28.1.1998 / 22:22:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10530
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10531
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10532
_MComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10533
    ^ self _WComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10535
    "Created: / 18.11.1998 / 00:21:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10536
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10538
_MComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10539
    ^ self _WComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10540
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10541
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10542
_MComponentPeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10543
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10544
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10545
    "Created: / 18.11.1998 / 00:15:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10546
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10547
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10548
_MComponentPeer_pInitialize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10549
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10550
    "Created: / 28.1.1998 / 22:27:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10551
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10552
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10553
_MComponentPeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10554
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10556
    "Created: / 18.11.1998 / 00:18:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10557
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10559
_MComponentPeer_pSetBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10560
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10562
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10563
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10564
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10566
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10568
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10569
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10570
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10571
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10572
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10573
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10574
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10575
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10576
_MComponentPeer_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10577
    |view jFont stFont name style size|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10578
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10579
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10580
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10582
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10583
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10584
        name := jFont instVarNamed:'name'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10585
        style := jFont instVarNamed:'style'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10586
        size := jFont instVarNamed:'size'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10588
        stFont := self replacementFontFor:(Java as_ST_String:name) style:style size:size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10589
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10590
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10591
    view font:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10592
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10593
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10594
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10596
_MComponentPeer_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10597
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10598
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10599
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10600
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10601
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10602
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10603
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10605
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10606
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10607
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10608
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10609
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10610
    view foregroundColor:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10611
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10612
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10613
_MComponentPeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10614
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10616
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10617
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10618
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10619
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10620
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10621
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10622
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10623
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10624
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10625
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10626
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10627
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10628
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10630
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10631
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10632
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10633
    "Created: / 18.11.1998 / 00:21:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10634
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10635
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10636
_MComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10637
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10639
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10640
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10641
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10642
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10643
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10644
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10645
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10647
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10648
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10649
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10650
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10651
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10652
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10653
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10654
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10655
    "Created: / 17.11.1998 / 23:49:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10656
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10657
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10658
_MComponentPeer_setCursor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10659
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10660
    "Created: / 28.1.1998 / 22:27:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10661
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10662
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10663
_MComponentPeer_setFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10664
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10665
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10666
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10667
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10669
    "Modified: / 25.1.1998 / 01:22:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10670
    "Created: / 17.11.1998 / 23:43:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10671
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10673
_MComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10674
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10675
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10676
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10677
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10678
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10679
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10680
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10681
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10683
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10684
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10685
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10687
    "Created: / 17.11.1998 / 23:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10688
    "Modified: / 17.11.1998 / 23:57:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10689
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10691
_MFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10692
    ^ self _WFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10694
    "Created: / 28.1.1998 / 22:25:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10695
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10697
_MFramePeer_getWindowBackgroundColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10698
    ^ View defaultViewBackgroundColor rgbValue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10699
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10700
    "Created: / 17.11.1998 / 23:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10701
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10702
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10703
_MFramePeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10704
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10705
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10706
    "Created: / 28.1.1998 / 22:27:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10707
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10708
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10709
_MFramePeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10710
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10711
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10712
    "Created: / 28.1.1998 / 22:28:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10713
    "Modified: / 28.1.1998 / 22:29:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10714
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10715
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10716
_MFramePeer_pSetTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10717
    self _WWindowPeer__setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10718
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10719
    "Created: / 28.1.1998 / 22:30:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10720
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10721
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10722
_MFramePeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10723
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10725
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10726
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10727
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10728
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10729
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10730
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10731
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10732
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10733
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10734
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10735
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10737
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10738
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10739
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10740
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10741
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10742
    "Created: / 18.11.1998 / 00:19:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10743
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10744
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10745
_MFramePeer_setInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10746
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10747
    "Created: / 17.11.1998 / 23:55:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10748
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10749
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10750
_MFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10751
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10753
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10754
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10755
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10756
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10757
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10758
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10759
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10760
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10761
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10762
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10763
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10764
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10765
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10766
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10767
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10768
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10769
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10770
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10771
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10772
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10773
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10774
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10775
    "Created: / 17.11.1998 / 23:51:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10776
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10777
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10778
_MToolkit_callbackLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10779
    | toolKit |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10780
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10781
    ^ self.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10782
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10783
        self halt: 'monitors has changer, update me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10784
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10785
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10786
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10787
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10788
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10789
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10790
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10791
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10792
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10793
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10794
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10795
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10796
    "Created: / 17-11-1998 / 23:58:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10797
    "Modified: / 08-01-1999 / 17:08:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10798
    "Modified: / 22-11-2011 / 13:25:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10799
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10800
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10801
_MToolkit_eventLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10802
    | toolKit |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10803
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10804
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10805
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10806
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10807
    self halt: 'monitors has changer, update me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10808
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10809
    self halt.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10810
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10811
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10812
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10813
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10814
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10815
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10816
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10817
    "Created: / 17-11-1998 / 23:04:29 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10818
    "Modified: / 08-01-1999 / 17:08:21 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 10819
    "Modified: / 22-11-2011 / 13:24:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10820
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10821
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10822
_MToolkit_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10823
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10824
    "Created: / 28.1.1998 / 22:21:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10825
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10826
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10827
_MToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10828
    ^ self _WToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10829
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10830
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10831
_MToolkit_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10833
    "Created: / 28.1.1998 / 22:22:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10834
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10835
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10836
_Math_IEEEremainder:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10837
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10839
    "Created: / 12.11.1998 / 18:52:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10840
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10842
_Math_acos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10843
    "arc cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10845
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10846
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10847
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10848
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10849
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10850
"/            'JAVAVM [info]: missing double flag in Math>>acos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10851
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10852
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10853
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10854
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10855
    ^ dVal arcCos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10857
    "Created: / 7.5.1998 / 00:34:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10858
    "Modified: / 11.11.1998 / 15:08:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10859
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10861
_Math_asin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10862
    "arc sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10864
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10865
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10866
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10867
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10868
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10869
"/            'JAVAVM [info]: missing double flag in Math>>asin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10870
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10871
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10872
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10873
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10874
    ^ dVal arcSin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10876
    "Created: / 7.5.1998 / 00:34:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10877
    "Modified: / 11.11.1998 / 15:08:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10878
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10879
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10880
_Math_atan2:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10881
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10883
    "Created: / 12.11.1998 / 18:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10884
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10886
_Math_atan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10887
    "arc tangens"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10889
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10890
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10891
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10892
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10893
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10894
"/            'JAVAVM [info]: missing double flag in Math>>atan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10895
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10896
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10897
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10898
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10899
    ^ dVal arcTan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10901
    "Created: / 6.2.1998 / 01:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10902
    "Modified: / 11.11.1998 / 15:08:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10903
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10905
_Math_ceil:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10906
    "ceiling"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10908
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10910
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10911
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10912
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10913
"/            'JAVAVM [info]: missing double flag in Math>>ceil' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10914
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10915
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10916
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10917
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10918
    ^ dVal ceilingAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10920
    "Created: / 7.1.1998 / 15:43:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10921
    "Modified: / 11.11.1998 / 15:08:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10922
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10924
_Math_cos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10925
    "cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10927
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10929
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10930
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10931
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10932
"/            'JAVAVM [info]: missing double flag in Math>>cos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10933
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10934
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10935
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10936
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10937
    ^ dVal cos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10939
    "Created: / 7.1.1998 / 15:41:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10940
    "Modified: / 11.11.1998 / 15:07:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10941
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10942
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10943
_Math_exp:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10944
    "exponential"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10945
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10946
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10948
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10949
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10950
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10951
"/            'JAVAVM [info]: missing double flag in Math>>exp' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10952
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10953
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10954
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10955
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10956
    ^ dVal exp
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10958
    "Created: / 7.5.1998 / 00:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10959
    "Modified: / 11.11.1998 / 15:07:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10960
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10962
_Math_floor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10963
    "floor"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10965
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10967
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10968
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10969
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10970
"/            'JAVAVM [info]: missing double flag in Math>>floor' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10971
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10972
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10973
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10974
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10975
    ^ dVal floorAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10977
    "Created: / 7.1.1998 / 19:09:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10978
    "Modified: / 11.11.1998 / 15:07:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10979
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10980
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10981
_Math_log:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10982
    "natural logarithm"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10983
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10984
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10986
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10987
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10988
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10989
"/            'JAVAVM [info]: missing double flag in Math>>log' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10990
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10991
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10992
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10993
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10994
    ^ dVal ln
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10996
    "Created: / 7.1.1998 / 15:42:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10997
    "Modified: / 30.12.1998 / 17:41:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10998
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11000
_Math_pow:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11001
    "power"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11003
    |dVal1 dVal2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11004
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11005
    dVal1 := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11006
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11007
"/        dVal1 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11008
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11009
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11010
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11011
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11012
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11013
    dVal2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11014
"/    (nativeContext argAt:4) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11015
"/        dVal2 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11016
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11017
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11018
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11019
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11020
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11021
    ^ dVal1 raisedTo:dVal2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11023
    "Created: / 7.1.1998 / 15:44:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11024
    "Modified: / 11.11.1998 / 15:07:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11025
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11026
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11027
_Math_rint:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11028
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11030
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11031
    ^ dVal rounded asFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11032
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11034
_Math_sin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11035
    "sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11036
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11037
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11039
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11040
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11041
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11042
"/            'JAVAVM [info]: missing double flag in Math>>sin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11043
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11044
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11045
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11046
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11047
    ^ dVal sin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11049
    "Created: / 7.1.1998 / 15:41:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11050
    "Modified: / 11.11.1998 / 15:07:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11051
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11052
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11053
_Math_sqrt:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11054
    "square root"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11055
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11056
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11058
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11059
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11060
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11061
"/            'JAVAVM [info]: missing double flag in Math>>sqrt' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11062
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11063
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11064
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11065
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11067
    "/ how about domain errors ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11068
    dVal < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11069
	^ 0.0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11070
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11071
    ^ dVal sqrt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11073
    "Created: / 7.1.1998 / 15:42:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11074
    "Modified: / 29.12.1998 / 13:22:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11075
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11077
_Math_tan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11078
    "tangent"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11080
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11082
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11083
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11084
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11085
"/            'JAVAVM [info]: missing double flag in Math>>tan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11086
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11087
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11088
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11089
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11090
    ^ dVal tan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11091
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11092
    "Created: / 7.5.1998 / 00:34:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11093
    "Modified: / 11.11.1998 / 15:07:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11094
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11095
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11096
_MemoryAdvice_register0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11097
    "private native void register0()"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11099
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11100
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11101
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11102
_Method_getModifiers:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11103
    |jMethod mthd retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11105
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11107
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11108
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11109
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11110
	^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11111
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11112
    ^ mthd accessFlags
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11114
    "Modified: / 9.4.1998 / 17:50:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11115
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11117
_Method_invoke:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11118
    "invoke a javaMethod"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11120
    |jMethod mthd rec args retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11122
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11123
    rec := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11124
    args := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11126
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11127
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11128
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11129
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11131
    "/ check for arguments to match the expected types ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11133
    mthd argSignature keysAndValuesDo:[:index :argSig |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11134
	|cls arg|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11136
	cls := Java at:argSig.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11137
	arg := args at:index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11138
	(arg isKindOf:cls) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11139
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11140
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11141
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11143
    mthd isStatic ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11144
	retVal := mthd valueWithReceiver:(mthd javaClass) arguments:args selector:mthd selector.        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11145
	^ retVal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11146
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11147
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11148
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11150
    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11152
    "Created: / 13.2.1998 / 15:15:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11153
    "Modified: / 13.2.1998 / 15:35:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11154
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11155
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11156
_MozillaAppletContext_pMochaOnLoad:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11157
    |id|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11159
    id := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11160
"/ 'JAVA: MozillaAppletContext_pMochaOnLoad: ' print. id printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11161
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11163
    "Created: / 6.1.1998 / 20:37:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11164
    "Modified: / 6.2.1998 / 02:13:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11165
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11166
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11167
_MozillaAppletContext_pShowDocument:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11168
    |jAppletContext s1 s2 s3 js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11169
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11170
    jAppletContext := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11171
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11172
    s1 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11173
    js := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11174
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11175
    js := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11176
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11177
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11178
    "/ somehow pass it to the html browser ....
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11179
Transcript show:'pShowDocument: '; show:s1; show:' / '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11180
	   show:s2; show:' / '; showCR:s3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11181
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11182
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11184
    "Created: / 29.3.1998 / 15:53:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11185
    "Modified: / 29.12.1998 / 13:32:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11186
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11187
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11188
_MozillaAppletContext_pShowStatus:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11189
    |s js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11191
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11192
    js isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11193
	s := ''
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11194
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11195
	s := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11196
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11198
    self activityNotification:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11199
"/ Transcript showCR:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11200
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11201
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11202
    "Created: / 6.1.1998 / 18:31:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11203
    "Modified: / 22.10.1998 / 01:17:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11204
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11205
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11206
_MozillaAppletContext_setConsoleState0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11207
    "/ void setConsoleState0 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11208
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11210
    "Created: / 12.11.1998 / 19:23:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11211
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11213
_ObjectInputStream_allocateNewArray:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11214
    "/ java.lang.Object allocateNewArray (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11215
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11217
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11218
    "Created: / 12.11.1998 / 19:02:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11219
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11220
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11221
_ObjectInputStream_allocateNewObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11222
    "/ java.lang.Object allocateNewObject (java.lang.Class java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11223
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11225
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11226
    "Created: / 12.11.1998 / 19:02:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11227
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11229
_ObjectInputStream_inputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11230
    "/ void inputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11231
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11233
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11234
    "Created: / 12.11.1998 / 19:02:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11235
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11237
_ObjectInputStream_invokeDefaultReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11238
    "/ void invokeDefaultReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11240
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11242
    "Created: / 27.1.2000 / 03:00:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11243
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11245
_ObjectInputStream_invokeObjectReader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11246
    "/ boolean invokeObjectReader (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11247
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11249
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11250
    "Created: / 12.11.1998 / 19:03:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11251
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11253
_ObjectInputStream_invokeReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11254
    "/ void invokeReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11256
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11258
    "Created: / 27.1.2000 / 03:01:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11259
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11261
_ObjectInputStream_loadClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11262
    "/ java.lang.Class loadClass0 (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11263
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11265
    "Created: / 12.11.1998 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11266
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11267
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11268
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11269
_ObjectOutputStream_invokeDefaultWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11270
    "/ void invokeDefaultWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11271
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11272
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11274
    "Created: / 27.1.2000 / 03:01:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11275
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11276
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11277
_ObjectOutputStream_invokeObjectWriter:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11278
    "/ boolean invokeObjectWriter (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11279
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11281
    "Created: / 12.11.1998 / 19:00:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11282
    "Modified: / 12.11.1998 / 19:01:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11283
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11285
_ObjectOutputStream_invokeWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11286
    "/ void invokeWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11288
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11290
    "Created: / 27.1.2000 / 03:01:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11291
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11292
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11293
_ObjectOutputStream_outputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11294
    "/ void outputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11295
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11296
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11297
    "Created: / 12.11.1998 / 19:00:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11298
    "Modified: / 12.11.1998 / 19:01:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11299
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11301
_ObjectStreamClass_doMismatchedRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11302
    "/ void doMismatchedRead (java.io.ObjectInputStream java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11304
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11306
    "Created: / 27.1.2000 / 02:50:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11307
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11308
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11309
_ObjectStreamClass_findObjectMethod0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11310
    "/ boolean findObjectMethod0 (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11311
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11312
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11313
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11314
    "Created: / 27.1.2000 / 02:51:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11315
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11317
_ObjectStreamClass_getClassAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11318
    "/ int getClassAccess (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11319
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11321
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11322
    "Created: / 12.11.1998 / 19:04:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11323
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11324
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11325
_ObjectStreamClass_getClassDefinedUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11326
    "/ long getClassDefinedUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11327
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11328
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11329
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11330
    "Created: / 27.1.2000 / 02:51:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11331
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11332
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11333
_ObjectStreamClass_getFieldAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11334
    "/ int getFieldAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11335
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11337
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11338
    "Created: / 12.11.1998 / 19:05:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11339
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11341
_ObjectStreamClass_getFieldSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11342
    "/ java.lang.String[] getFieldSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11343
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11345
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11346
    "Created: / 12.11.1998 / 19:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11347
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11348
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11349
_ObjectStreamClass_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11350
    "/ java.io.ObjectStreamField[] getFields0 (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11351
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11353
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11354
    "Created: / 12.11.1998 / 19:05:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11355
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11357
_ObjectStreamClass_getMethodAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11358
    "/ int getMethodAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11359
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11361
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11362
    "Created: / 12.11.1998 / 19:04:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11363
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11365
_ObjectStreamClass_getMethodSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11366
    "/ java.lang.String[] getMethodSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11367
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11369
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11370
    "Created: / 12.11.1998 / 19:04:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11371
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11372
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11373
_ObjectStreamClass_getSerialVersionUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11374
    "/ long getSerialVersionUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11375
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11377
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11378
    "Created: / 12.11.1998 / 19:05:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11379
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11380
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11381
_ObjectStreamClass_hasWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11382
    "/ boolean hasWriteObject (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11383
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11385
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11386
    "Created: / 12.11.1998 / 19:05:53 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11387
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11388
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11389
_OffScreenImageSource_sendPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11390
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11391
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11393
    "Modified: / 16.1.1998 / 18:22:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11394
    "Created: / 17.1.1998 / 12:36:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11395
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11397
_PackedColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11398
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11400
    "Created: / 28.1.1998 / 22:19:35 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11401
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11403
_PlainDatagramSocketImpl_bind:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11404
    |jsock jaddr port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11405
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11406
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11407
    port := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11408
    jaddr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11410
    hostName := jaddr instVarNamed:'hostName'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11411
    hostName isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11412
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11413
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11414
	hostName := Java as_ST_String:hostName
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11415
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11417
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11418
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11419
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11420
	    ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11421
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11423
	ok := sock bindTo:port address:nil "hostName".
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11424
	ok ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11425
	    err := OperatingSystem lastErrorString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11426
	    Transcript showCR:'sock err: ' , err printString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11427
	    self throwIOExceptionWithMessage:'bind failed'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11428
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11429
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11431
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11432
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11433
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11435
_PlainDatagramSocketImpl_join:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11436
    "/ native void join (InetAddress arg1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11438
    |jsock addr sock ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11439
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11440
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11441
    addr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11443
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11444
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11445
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11446
	    ('JAVA: socket join ' , addr printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11447
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11448
	self throwIOExceptionWithMessage:'unimplemented: join'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11449
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11450
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11451
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11453
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11454
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11455
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11457
_PlainDatagramSocketImpl_receive:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11458
    |jsock jdatagramPacket sock ok|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11459
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11460
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11461
    jdatagramPacket := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11463
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11464
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11465
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11466
	    ('JAVA: socket receive') infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11467
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11468
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11469
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11470
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11472
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11473
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11474
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11476
_PlainDatagramSocketImpl_socketGetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11477
    |jsock opt port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11479
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11480
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11481
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11482
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11483
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11484
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11485
	    ('JAVA: socket getOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11486
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11487
	self throwIOExceptionWithMessage:'unimplemented: getOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11488
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11489
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11490
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11491
    ^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11493
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11494
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11495
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11497
_PlainDatagramSocketImpl_socketSetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11498
    "/ native void socketSetOption (int arg1, java.lang.Object arg2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11500
    |jsock opt optVal sock ok err jSocketOptions|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11501
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11502
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11503
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11504
    optVal := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11506
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11507
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11508
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11509
	    ('JAVA: socket setOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11510
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11512
	jSocketOptions := Java at:'java.net.SocketOptions'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11513
	(opt == (jSocketOptions instVarNamed:'TCP_NODELAY')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11514
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11515
	    (opt == (jSocketOptions instVarNamed:'SO_BINDADDR')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11516
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11517
		(opt == (jSocketOptions instVarNamed:'SO_REUSEADDR')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11518
		] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11519
		    (opt == (jSocketOptions instVarNamed:'IP_MULTICAST_IF')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11520
		    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11521
			(opt == (jSocketOptions instVarNamed:'SO_LINGER')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11522
			] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11523
			    (opt == (jSocketOptions instVarNamed:'SO_TIMEOUT')) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11524
			    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11525
				self throwIOExceptionWithMessage:'bad arg to setOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11526
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11527
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11528
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11529
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11530
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11531
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11532
	self throwIOExceptionWithMessage:'unimplemented: setOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11533
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11534
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11535
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11537
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11538
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11539
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11540
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11541
_PlainSocketImpl_socketAvailable:nativeContext
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11542
    |jSock sock n|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11543
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11544
    jSock := nativeContext receiver.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11545
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11546
    sock := self validateFile:jSock.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11547
    sock isNil ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11548
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11549
	^ self.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11550
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11551
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11552
    n := sock numAvailable.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11553
    ^ n
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11554
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11555
    "Created: / 4.2.1998 / 16:58:49 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11556
    "Modified: / 30.12.1998 / 20:10:08 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11557
!
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 11558
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11559
_PlainSocketImpl_socketClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11560
    |jsock sock|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11562
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11564
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11565
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11566
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11567
	    'JAVA: close socket' infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11568
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11569
	sock close.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11570
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11572
    "Modified: / 21.8.1997 / 17:09:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11573
    "Created: / 25.1.1998 / 20:04:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11574
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11575
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11576
_PlatformFont_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11577
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11578
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11579
    "Created: / 28.1.1998 / 22:30:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11580
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11582
_PrintStream_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11583
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11584
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11585
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11587
    "Created: / 27.1.2000 / 03:00:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11588
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11590
_RandomAccessFile_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11591
    ^ self anyStream_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11592
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11593
    "Created: / 4.2.1998 / 13:26:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11594
    "Modified: / 4.2.1998 / 15:21:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11595
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11596
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11597
_RandomAccessFile_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11598
    |file sz|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11599
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11600
    file := self validateFile:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11601
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11602
    FileIOTrace ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11603
	('JAVA: length of ' , file pathName) infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11604
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11605
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11606
    sz := file size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11607
    ^ sz.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11609
    "Created: / 4.2.1998 / 13:27:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11610
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11612
_RandomAccessFile_read:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11613
    |file byte|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11615
    file := self validateFile:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11616
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11617
    FileIOTrace ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11618
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11619
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11621
    byte := file nextByte.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11622
    byte isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11623
	^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11624
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11625
    ^ byte
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11626
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11627
    "Modified: / 5.1.1998 / 02:17:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11628
    "Created: / 27.1.1999 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11629
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11630
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11631
_RandomAccessFile_readBytes:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11632
    ^ self anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11633
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11634
    "Modified: / 4.2.1998 / 15:23:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11635
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11636
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11637
_RandomAccessFile_seek:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11638
    |file pos|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11639
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11640
    file := self validateFile:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11642
    FileIOTrace ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11643
	('JAVA: seek on ' , file pathName) infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11644
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11645
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11646
    pos := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11647
    file position:pos+1 "/ ST/X position starts at 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11648
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11649
    "Created: / 4.2.1998 / 13:25:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11650
    "Modified: / 4.2.1998 / 13:28:12 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11651
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11652
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11653
_RandomAccessFile_writeBytes:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11654
    ^ self anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11655
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11656
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11657
    "Created: / 4.2.1998 / 15:24:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11658
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11659
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11660
_Runtime_buildLibName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11661
    |jPath jFileName path fileName libName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11662
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11663
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11664
    jFileName := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11665
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11666
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11667
    fileName := Java as_ST_String:jFileName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11669
    path = '__builtIn__' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11670
	libName := path , '/' , fileName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11671
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11672
	libName := path , '/lib' , fileName , '.so'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11673
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11674
    ^ Java as_String:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11675
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11676
    "Modified: / 8.8.1997 / 12:05:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11677
    "Created: / 4.1.1998 / 19:07:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11678
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11679
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11680
_Runtime_execInternal: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11681
    "Run a unix-command; return a process object."
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11682
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11683
    | cmdAndArgArray  envArray  cmd  jProcessClass  jProcess |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11684
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11685
    cmdAndArgArray := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11686
    envArray := nativeContext argAt: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11687
    cmd := cmdAndArgArray at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11688
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11689
        jProcessClass := self classForName: 'java.lang.UNIXProcess'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11690
    ] ifFalse: [ jProcessClass := Java classForName: 'java.lang.Win32Process'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11691
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11692
"/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11693
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11694
    jProcessClass notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11695
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11696
        jProcess := jProcessClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11697
        jProcess 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11698
            perform: #'<init>([Ljava/lang/String;[Ljava/lang/String;)V'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11699
            with: cmdAndArgArray
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11700
            with: envArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11701
        ^ jProcess
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11702
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11703
    self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11704
    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 11705
        throwIOExceptionWithMessage: 'Process execution disabled/unimplemented'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11706
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11707
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11708
    "Created: / 15.1.1998 / 01:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11709
    "Modified: / 11.12.1998 / 13:09:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11710
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11711
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11712
_Runtime_freeMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11713
    "free memory - Returns the number of free bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11715
    ^ ObjectMemory freeListSpace + ObjectMemory freeSpace
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11716
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11717
    "Created: / 12.1.1998 / 12:59:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11718
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11720
_Runtime_initializeLinkerInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11721
    "init sharedLib linker, return searchPath as javaString"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11723
    |path|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11725
    "/ mhmh - what is done here ?
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11726
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11727
    path := ''.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11728
    LibPath do:[:comp | path size == 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11729
			    path := path , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11730
			] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11731
			    path := path , ':' , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11732
			]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11733
	       ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11734
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11735
    ^ Java as_String:path
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11737
    "Modified: / 7.8.1997 / 21:17:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11738
    "Created: / 4.1.1998 / 17:53:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11739
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11740
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11741
_Runtime_isInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11742
    "/ boolean isInputStreamLocalised (java.io.DataInputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11743
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11744
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11745
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11746
    "Created: / 27.1.2000 / 03:03:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11747
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11748
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11749
_Runtime_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11750
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11752
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11753
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11754
    "Created: / 27.1.2000 / 03:02:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11755
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11756
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11757
_Runtime_loadFileInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11758
    "load a sharedLib, return boolean 0 (false) if fail; 1 (true) if ok"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11759
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11760
    |ret|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11762
    ret := self _Runtime_loadFileInternalI:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11763
    ret < 0 ifTrue:[ ret := 0 ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11764
    ^ ret
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11765
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11766
    "Created: / 4.1.1998 / 19:10:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11767
    "Modified: / 4.1.1998 / 19:11:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11768
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11769
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11770
_Runtime_loadFileInternalI:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11771
    "1.1b3 change; load a sharedLib like 'loadFileInternal',
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11772
     but return integer:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11773
	-1   outOfMemory error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11774
	0    failed to load
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11775
	1    loaded or already loaded (i.e. ok)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11776
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11777
    |jLibName libName libHandle|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11778
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11779
    jLibName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11780
    libName := Java as_ST_String:jLibName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11782
    (SimulatedLibs includes:libName) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11783
"/        ('JAVA: builtIn libLoad simulated: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11784
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11785
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11786
    (LoadedLibs notNil and:[LoadedLibs includesKey:libName]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11787
"/        ('JAVA: already loaded: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11788
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11789
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11790
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11791
    libName asFilename exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11792
	('JAVA: no file to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11793
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11794
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11795
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11796
    (self confirm:'permission to load native library: ' , libName , ' ?') ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11797
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11798
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11799
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11800
    libHandle := ObjectFileLoader loadLibrary:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11801
    libHandle isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11802
	('JAVA: failed to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11803
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11804
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11805
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11806
    LoadedLibs isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11807
	LoadedLibs := Dictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11808
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11809
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11810
    LoadedLibs at:libName put:libHandle.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11811
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11812
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11813
    "Created: / 4.1.1998 / 19:10:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11814
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11815
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11817
_Runtime_runFinalization:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11818
    "/ void runFinalization ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11819
"/    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11821
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11822
    "Created: / 12.11.1998 / 18:59:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11823
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11824
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11825
_Runtime_runFinalizersOnExit0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11826
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11828
    |onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11829
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11830
    onOff := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11831
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11833
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11834
    "Created: / 15.10.1998 / 23:34:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11835
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11836
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11837
_Runtime_setInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11838
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11839
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11840
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11841
    "Modified: / 27.1.2000 / 03:02:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11842
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11843
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11844
_Runtime_setOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11845
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11846
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11847
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11848
    "Modified: / 27.1.2000 / 03:02:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11849
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11850
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11851
_Runtime_totalMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11852
    "free memory - Returns the total number of bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11853
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11854
    ^ ObjectMemory oldSpaceSize + ObjectMemory newSpaceSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11855
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11856
    "Created: / 12.1.1998 / 12:59:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11857
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11858
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11859
_Runtime_traceInstructions:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11860
    "/ void traceInstructions (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11861
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11862
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11863
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11864
    "Created: / 12.11.1998 / 18:59:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11865
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11866
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11867
_Runtime_traceMethodCalls:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11868
    "/ void traceMethodCalls (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11869
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11870
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11871
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11872
    "Created: / 12.11.1998 / 18:59:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11873
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11874
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11875
_ScrollPane_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11876
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11877
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11878
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11879
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11880
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11881
_SecurityManager_classDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11882
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11884
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11885
    "Created: / 12.11.1998 / 18:56:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11886
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11887
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11888
_SecurityManager_classLoaderDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11889
    |con depth|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11891
    con := thisContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11892
    depth := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11893
    [con notNil] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11894
	con receiver == JavaClassReader classLoaderQuerySignal ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11895
	    con selector == #handle:do: ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11896
		depth := depth + 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11897
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11898
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11899
	con := con sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11900
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11901
'JAVA: classLoaderDepth -> ' infoPrint. depth infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11902
    ^ depth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11903
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11904
    "Created: / 13.1.1998 / 09:21:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11905
    "Modified: / 13.1.1998 / 09:33:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11906
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11908
_SecurityManager_currentClassLoader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11909
    |loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11911
    loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11912
"/ 'JAVA: currentClassLoader -> ' infoPrint. loader displayString infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11913
    ^ loader.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11914
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11915
    "Created: / 13.1.1998 / 09:23:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11916
    "Modified: / 11.12.1998 / 12:39:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11917
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11918
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11919
_SecurityManager_currentLoadedClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11920
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11921
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11922
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11923
    "Created: / 12.11.1998 / 18:56:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11924
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11926
_SocketInputStream_socketRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11927
    ^ self anyStream_readBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11928
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11929
    "Created: / 25.1.1998 / 20:56:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11930
    "Modified: / 4.2.1998 / 15:52:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11931
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11932
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11933
_SocketOutputStream_socketWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11934
    ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11935
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11936
    "Created: / 25.1.1998 / 21:06:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11937
    "Modified: / 4.2.1998 / 15:52:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11938
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11940
_String_compareTo:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11941
    "int compareTo (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11943
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11945
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11946
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11947
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11948
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11949
    "Created: / 27.1.2000 / 02:28:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11950
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11951
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11952
_String_equals:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11953
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11954
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11955
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11956
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11957
    ^ (jString1 instVarAt:1) = (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11958
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11959
    "Created: / 18.11.1998 / 00:52:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11960
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11961
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11962
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11963
_String_equalsIgnoreCase:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11964
    "boolean equalsIgnoreCase (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11965
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11966
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11967
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11968
self halt:'untested'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11969
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11970
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11971
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11972
    ^ (jString1 instVarAt:1) sameAs: (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11974
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11975
    "Created: / 27.1.2000 / 02:27:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11976
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11977
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11978
_String_indexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11979
    "int indexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11981
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11983
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11984
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11985
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11986
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11987
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11988
    "Created: / 27.1.2000 / 02:30:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11989
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11990
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11991
_String_lastIndexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11992
    "int lastIndexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11993
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11994
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11995
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11996
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11997
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11998
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11999
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12001
    "Created: / 27.1.2000 / 02:33:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12002
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12004
_String_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12005
    |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12006
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12007
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12008
    ^ (jString instVarAt:3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12009
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12010
    "Created: / 18.11.1998 / 00:53:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12011
    "Modified: / 18.11.1998 / 00:54:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12012
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12014
_String_regionMatches2:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12015
    "boolean regionMatches (boolean int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12017
    |jString1 bool jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12018
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12019
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12020
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12021
    jString2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12022
    idx1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12023
    idx2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12024
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12026
    "Created: / 27.1.2000 / 02:33:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12027
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12028
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12029
_String_regionMatches:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12030
    "boolean regionMatches (int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12032
    |jString1 jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12034
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12035
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12036
    idx1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12037
    idx2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12038
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12039
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12040
    "Created: / 27.1.2000 / 02:32:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12041
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12042
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12043
_String_startsWith:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12044
    "boolean startsWith (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12045
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12046
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12048
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12049
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12050
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12051
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12052
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12053
    "Created: / 27.1.2000 / 02:31:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12054
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12055
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12056
_SystemColor_GetSysColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12057
    "/ int GetSysColor (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12058
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12059
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12060
    "Created: / 27.1.2000 / 02:44:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12061
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12063
_SystemResourceManager_getEntryFromKey:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12064
    "get a resource by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12065
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12066
    |key s|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12067
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12068
    key := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12070
    s := Java effectiveClassPath at:(key+1) ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12071
    s isNil ifTrue:[^ nil].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12072
    ^ Java as_String:s
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12073
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12074
    "Modified: / 22-11-2010 / 13:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12075
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12076
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12077
_SystemResourceManager_validateSystemResource:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12078
    "check a resource"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12079
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12080
    |bool str1 str2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12081
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12082
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12083
    str1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12084
    str2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12085
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12086
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12087
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12088
_System_getCallerClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12089
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12090
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12091
    |senderContext cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12093
    senderContext := nativeContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12094
    [senderContext receiver == (Java at:'java.lang.System')] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12095
	senderContext := senderContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12096
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12097
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12098
    senderContext method isStatic ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12099
	cls := senderContext receiver
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12100
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12101
	cls := senderContext receiver class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12102
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12103
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12104
	^ self javaClassObjectForClass:cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12105
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12106
    (cls isMemberOf:(Java at:'java.lang.Class')) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12107
	^ Java at:'java.lang.Class'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12108
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12109
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12110
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12111
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12112
    "Modified: / 27.1.1998 / 18:33:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12113
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12115
_System_validateSecurityManager:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12116
    "void validateSecurityManager (java.lang.SecurityManager)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12117
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12118
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12119
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12120
    "Created: / 27.1.2000 / 02:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12121
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12122
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12123
_ThreadGroup_initMainThreadGroup0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12124
    "void initMainThreadGroup0 (java.lang.ThreadGroup)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12126
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12127
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12128
    "Created: / 27.1.2000 / 02:45:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12129
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12130
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12131
_Thread_countStackFrames:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12132
    "/ int countStackFrames ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12133
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12135
    "Created: / 12.11.1998 / 19:06:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12136
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12138
_Thread_resume0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12139
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12141
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12143
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12144
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12145
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12146
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12147
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12148
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12149
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12150
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12151
    stProcess resume
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12153
    "Created: / 8.1.1998 / 01:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12154
    "Modified: / 6.2.1998 / 02:15:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12155
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12156
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12157
_Thread_start: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12158
    "start the thread"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12159
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12160
    | jThread  jName  name  stProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12161
    jThread := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12162
    (jThread instVarNamed: 'priority') < 1 ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12163
        self halt.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12164
        jThread instVarNamed: 'priority' put: 1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12165
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12166
    stProcess := JavaProcess 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12167
                for: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12168
                    | procName |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12169
                    Object abortSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12170
                        handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12171
                            :ex | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12172
                            procName := stProcess name.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12173
                            (procName startsWith: 'JAVA-AWT-EventQueue') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12174
                                ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12175
                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12176
                                ex restart.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12177
                            ] ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12178
                                (stProcess == JavaScreenUpdaterThread 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12179
                                    or: [ stProcess == JavaEventQueueThread ]) 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12180
                                        ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12181
                                            ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12182
                                                infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12183
                                            ex restart
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12184
                                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12185
                                        ifFalse: [ ('JAVA [info]: thread ' , procName , ' aborted.') infoPrintCR. ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12186
                            ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12187
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12188
                        do: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12189
                            [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12190
                                JavaVM javaExceptionSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12191
                                    handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12192
                                        :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12193
                                        | exClass |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12194
                                        procName := stProcess name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12195
                                        exClass := ex parameter class.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12196
                                        exClass == (Java at: 'java.lang.ThreadDeath') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12197
                                            ('JAVA: thread ' , procName , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12198
                                        ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12199
                                            Transcript 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12200
                                                showCR: ('JAVA: thread ''' , procName , ''' terminated with exception: ' 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12201
                                                        , exClass name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12202
                                        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12203
                                        ex return.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12204
                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12205
                                    do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12206
                                        Object messageNotUnderstoodSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12207
                                            handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12208
                                                :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12209
                                                | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12210
                                                "/ remap doesNotUnderstand with nil-receiver to
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12211
                                                "/ a nullPointerException ...
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12212
                                                 con  m |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12213
                                                con := ex suspendedContext.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12214
                                                con receiver isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12215
                                                    ((m := con sender method) notNil and: [ m isJavaMethod ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12216
                                                        self throwNullPointerException.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12217
                                                        AbortSignal raise.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12218
                                                        "/ ex proceed.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12219
                                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12220
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12221
                                                ex reject.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12222
                                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12223
                                            do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12224
                                                "/ Transcript showCR:(Timestamp now printString , 'start thread: ', stProcess name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12225
                                                jThread perform: #'run()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12226
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12227
                                                    ('JAVA: thread ' , stProcess name , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12228
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12229
                                                jThread perform: #'exit()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12230
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12231
                                                    ('JAVA: after exit of thread ' , stProcess name) infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12232
                                                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12233
                                            ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12234
                                    ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12235
                            ] ensure: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12236
                                | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12237
                                monitors := EnteredMonitorsPerProcess at: stProcess ifAbsent: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12238
                                monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12239
                                    monitors do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12240
                                        :obj | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12241
                                        | mon |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12242
                                        mon := self monitorFor: obj.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12243
                                        mon notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12244
                                            mon owningProcess == stProcess ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12245
                                                ('JAVA: release monitor owned by dying thread: ' , stProcess name) 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12246
                                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12247
                                                mon exit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12248
                                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12249
                                        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12250
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12251
                                    EnteredMonitorsPerProcess removeKey: stProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12252
                                    stProcess == JavaScreenUpdaterThread ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12253
                                        JavaScreenUpdaterThread := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12254
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12255
                                    stProcess == JavaEventQueueThread ifTrue: [ JavaEventQueueThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12256
                                    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12257
"/                                    screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12258
"/                                    screenUpdaterClass notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12259
"/                                        screenUpdaterClass instVarNamed:'updater' put:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12260
"/                                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12261
                                ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12262
                                Java threads removeKey: jThread ifAbsent: [].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12263
                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12264
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12265
                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12266
                priority: (Processor activePriority).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12267
    jName := jThread instVarNamed: 'name'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12268
    jName isString ifFalse: [ name := Java as_ST_String: jName. ] ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12269
        name := jName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12270
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12271
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12272
    "/ kludge - remember the ScreenUpdater ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12273
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12274
    name = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12275
        name = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12276
            (name startsWith: 'AWT-EventQueue') ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12277
                JavaEventQueueThread := stProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12278
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12279
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12280
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12281
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12282
"/name = 'UserDialogShowThread' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12283
"/self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12284
"/].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12285
    "/ when that process terminates, wakup any waiters
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12286
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12287
    stProcess addExitAction: [ self notify: jThread ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12288
    stProcess name: 'JAVA-' , name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12289
    stProcess restartable: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12290
    stProcess resume.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12291
    Java threads at: jThread put: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12292
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12293
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12294
    "Created: / 03-01-1998 / 02:05:52 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12295
    "Modified: / 24-12-1999 / 03:14:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12296
    "Modified: / 22-11-2011 / 13:24:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12297
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12298
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12299
_Thread_stop0: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12300
    "terminate a thread"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12301
    
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12302
    | jThread  stProcess  death |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12303
    jThread := nativeContext receiver.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12304
    stProcess := JavaVM stProcessForJavaThread: jThread.
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12305
    stProcess isNil ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12306
        ThreadTrace == true ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12307
            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12308
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12309
        ^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12310
    ].
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12311
    stProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12312
    stProcess == JavaEventQueueThread ifTrue: [ self halt ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12313
    death := nativeContext argAt: 1.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12314
    stProcess 
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12315
        interruptWith: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12316
            JavaVM javaExceptionSignal 
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12317
                handle: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12318
                    :ex | 
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12319
                    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12320
                    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12321
                    Processor activeProcess terminate
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12322
                ]
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12323
                do: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12324
                    ThreadTrace == true ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12325
                        ('JAVA: thread exit: ' , jThread displayString) infoPrintNL.
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12326
                    ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12327
                    
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12328
                    jThread perform: #'exit()V'.
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12329
                    
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12330
                    self throwException: death.
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12331
                ]
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12332
        ].
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12333
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12334
    "Created: / 08-01-1998 / 13:11:17 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12335
    "Modified: / 24-12-1999 / 02:32:45 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 12336
    "Modified: / 01-12-2011 / 18:26:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12337
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12339
_Thread_suspend0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12340
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12342
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12343
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12344
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12345
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12346
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12347
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12348
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12349
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12350
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12351
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12352
    stProcess suspend
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12354
    "Created: / 8.1.1998 / 01:05:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12355
    "Modified: / 6.2.1998 / 02:15:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12356
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12357
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12358
_Throwable_printStackTrace0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12359
    |out outStream exceptionObject contextList|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12361
    outStream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12362
    exceptionObject := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12363
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12364
    contextList := exceptionObject instVarNamed:'backtrace'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12366
    out := self javaConsoleStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12367
    out cr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12368
    out nextPutLine:'JAVA: stackTrace:'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12370
    contextList do:[:con |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12371
	out 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12372
	    nextPutAll:'  '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12373
	    nextPutAll:(con method javaClass fullName);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12374
	    nextPutAll:'.';
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12375
	    nextPutAll:(con method selector);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12376
	    nextPutAll:' ['; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12377
	    nextPutAll:(con method javaClass sourceFile); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12378
	    nextPutAll:' '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12379
	    nextPutAll:(con quickLineNumber displayString); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12380
	    nextPutAll:']'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12381
	out cr
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12382
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12383
    out nextPutLine:'----------------------------------------------------'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12385
    "Created: / 4.1.1998 / 14:27:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12386
    "Modified: / 10.11.1998 / 14:19:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12387
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12388
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12389
_URLConnection_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12390
    "/ void close ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12391
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12393
    "Created: / 12.11.1998 / 19:26:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12394
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12396
_URLConnection_finalize:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12397
    "/ void finalize ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12398
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12400
    "Created: / 12.11.1998 / 19:25:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12401
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12403
_URLConnection_getContentLength0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12404
    "/ int getContentLength0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12405
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12407
    "Created: / 12.11.1998 / 19:25:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12408
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12410
_URLConnection_getContentType0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12411
    "/ java.lang.String getContentType0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12412
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12414
    "Created: / 12.11.1998 / 19:25:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12415
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12417
_URLConnection_getHeaderField0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12418
    "/ java.lang.String getHeaderField0 (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12419
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12421
    "Created: / 12.11.1998 / 19:25:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12422
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12424
_URLConnection_pCreate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12425
    "/ void pCreate (java.lang.String java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12426
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12428
    "Created: / 12.11.1998 / 19:25:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12429
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12431
_URLInputStream_available:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12432
    "/ int available ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12433
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12435
    "Created: / 12.11.1998 / 19:24:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12436
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12438
_URLInputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12439
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12440
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12442
    "Created: / 12.11.1998 / 19:24:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12443
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12445
_URLInputStream_read:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12446
    "/ int read (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12447
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12448
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12449
    "Created: / 12.11.1998 / 19:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12450
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12452
_URLOutputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12453
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12454
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12456
    "Created: / 12.11.1998 / 19:24:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12457
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12459
_URLOutputStream_pClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12460
    "/ void pClose ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12461
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12463
    "Created: / 12.11.1998 / 19:25:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12464
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12466
_URLOutputStream_write:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12467
    "/ void write (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12468
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12469
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12470
    "Created: / 12.11.1998 / 19:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12471
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12473
_URLOutputStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12474
    "/ void writeBytes (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12475
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12476
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12477
    "Created: / 12.11.1998 / 19:24:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12480
_URLStreamHandlerFactory_pInit:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12481
    "/ self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12483
    "Created: / 10.1.1998 / 15:47:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12484
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12486
_URLStreamHandlerFactory_pSupportsProtocol:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12487
    "/ boolean pSupportsProtocol (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12488
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12490
    "Created: / 12.11.1998 / 19:23:43 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12491
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12492
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12493
_VM_getState:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12494
    "/ int getState ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12495
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12496
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12497
    "Created: / 12.11.1998 / 19:06:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12498
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12499
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12500
_VM_resetJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12501
    "/ void resetJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12502
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12503
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12504
    "Created: / 14.11.1998 / 10:43:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12505
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12506
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12507
_VM_resumeJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12508
    "/ void resumeJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12509
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12511
    "Created: / 14.11.1998 / 10:42:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12512
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12514
_VM_suspendJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12515
    "/ void suspendJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12516
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12517
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12518
    "Created: / 14.11.1998 / 10:43:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12519
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12520
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12521
_VM_threadsSuspended:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12522
    "/ boolean threadsSuspended ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12523
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12524
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12525
    "Created: / 12.11.1998 / 19:07:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12526
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12528
_VM_unsuspendSomeThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12529
    "/ void unsuspendSomeThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12530
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12531
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12532
    "Created: / 12.11.1998 / 19:07:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12533
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12535
_VM_unsuspendThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12536
    "/ void unsuspendThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12537
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12539
    "Created: / 12.11.1998 / 19:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12540
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12541
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12542
_VM_writeJavaMonitorReport:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12543
    "/ void writeJavaMonitorReport ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12544
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12546
    "Created: / 14.11.1998 / 10:43:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12547
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12549
_WButtonPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12550
    |jButtonPeer jButton jFrame frame button
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12551
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12553
    jButtonPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12554
    jButton := jButtonPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12556
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12557
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12559
    button := Button in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12560
    button sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12561
    button action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12562
			jButtonPeer perform:#'handleAction()V'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12563
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12565
    lbl := jButton instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12566
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12567
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12568
	button label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12569
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12570
    self createdWindowsView:button for:jButtonPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12572
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12573
	'WButtonPeer_create: ' print. frame print. ' -> ' print. button printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12574
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12576
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12577
    "Modified: / 11.12.1998 / 00:19:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12578
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12580
_WButtonPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12581
    |label jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12583
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12585
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12586
    label label:(Java as_ST_String:jString)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12587
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12588
    "Modified: / 8.1.1998 / 17:35:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12589
    "Created: / 1.2.1998 / 17:05:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12590
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12591
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12592
_WCanvasPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12593
    |jCanvasPeer jFrame frame subView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12595
    jCanvasPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12597
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12598
    jFrame isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12599
	self halt:'no frame in canvasPeer create'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12600
	subView := JavaView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12601
"/        self internalError:'no frame in canvasPeer create'.     
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12602
"/        ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12603
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12604
	frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12605
	subView := JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12606
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12608
    subView delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12609
    subView javaPeer:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12610
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12611
    self createdWindowsView:subView for:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12613
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12614
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12615
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12617
    "Created: / 5.1.1998 / 00:59:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12618
    "Modified: / 16.1.1998 / 13:40:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12619
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12620
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12621
_WCheckboxMenuItemPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12622
    "/ void setState (boolean)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12623
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12625
    "Created: / 12.11.1998 / 19:14:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12626
    "Modified: / 3.12.1998 / 21:41:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12629
_WCheckboxPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12630
    |jCheckboxPeer jCheckbox jFrame frame checkBox lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12632
    jCheckboxPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12633
    jCheckbox := jCheckboxPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12635
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12636
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12638
    checkBox := CheckBox in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12639
    checkBox action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12640
			jCheckboxPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12641
			    perform:#'handleAction(Z)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12642
			    with:(checkBox isOn ifTrue:[1] ifFalse:[0])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12643
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12645
    lbl := jCheckbox instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12646
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12647
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12648
	checkBox label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12649
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12651
    self createdWindowsView:checkBox for:jCheckboxPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12653
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12654
	'WCheckboxPeer_create: ' print. frame print. ' -> ' print. checkBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12655
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12656
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12657
    "Created: / 7.1.1998 / 21:48:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12658
    "Modified: / 15.1.1998 / 12:27:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12659
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12661
_WCheckboxPeer_setCheckboxGroup:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12662
    |checkBox jGroup|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12664
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12666
    jGroup := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12668
    "Created: / 7.1.1998 / 21:48:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12669
    "Modified: / 25.1.1998 / 01:20:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12670
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12672
_WCheckboxPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12673
    "/ void setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12674
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12676
    "Created: / 12.11.1998 / 19:14:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12677
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12679
_WCheckboxPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12680
    |checkBox state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12682
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12684
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12685
    state ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12686
	checkBox turnOn
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12687
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12688
	checkBox turnOff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12689
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12691
    "Created: / 7.1.1998 / 21:49:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12692
    "Modified: / 25.1.1998 / 01:26:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12693
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12694
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12695
_WChoicePeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12696
    |jString index comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12698
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12699
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12700
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12701
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12703
    comboBox model list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12704
    comboBox model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12706
    "Created: / 7.1.1998 / 21:45:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12707
    "Modified: / 24.1.1998 / 18:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12708
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12710
_WChoicePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12711
    |jChoicePeer jChoice jFrame frame comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12712
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12713
    jChoicePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12714
    jChoice := jChoicePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12716
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12717
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12719
    comboBox := ComboListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12720
    comboBox model:(SelectionInList new list:(OrderedCollection new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12721
    comboBox action:[:index | 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12722
			jChoicePeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12723
			    perform:#'handleAction(I)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12724
			    with:(comboBox model selectionIndex - 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12725
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12727
    self createdWindowsView:comboBox for:jChoicePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12729
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12730
	'WChoicePeer_create: ' print. frame print. ' -> ' print. comboBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12731
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12733
    "Created: / 7.1.1998 / 21:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12734
    "Modified: / 28.1.1998 / 23:19:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12735
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12737
_WChoicePeer_remove:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12738
    "/ void remove (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12739
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12741
    "Created: / 12.11.1998 / 19:12:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12742
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12744
_WChoicePeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12745
    self commonReshapeComponent:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12746
"/    self pReshape:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12747
    ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12749
    "Created: / 7.1.1998 / 21:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12750
    "Modified: / 23.12.1998 / 19:08:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12751
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12753
_WChoicePeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12754
    |comboBox index|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12755
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12756
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12757
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12758
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12759
    comboBox model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12761
    "Created: / 7.1.1998 / 21:45:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12762
    "Modified: / 25.1.1998 / 09:55:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12763
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12765
_WClipboard_getClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12766
    "/ java.lang.String getClipboardText ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12768
    |str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12769
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12770
    str := Screen current rootView getTextSelection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12771
    str isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12772
	str := ''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12773
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12774
    ^ Java as_String:''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12776
    "Modified: / 10.12.1998 / 21:28:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12777
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12779
_WClipboard_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12780
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12782
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12783
    "Created: / 4.1.1998 / 19:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12784
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12786
_WClipboard_setClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12787
    "/ void setClipboardText (java.awt.datatransfer.StringSelection)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12789
    |strSel data|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12791
    strSel := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12792
    data := strSel instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12793
    data class == (Java at:'java.lang.String') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12794
	Screen current rootView setTextSelection:(Java as_ST_String:data)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12795
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12796
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12798
    "Created: / 12.11.1998 / 19:15:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12799
    "Modified: / 10.12.1998 / 21:25:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12800
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12801
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12802
_WColor_getDefaultColor: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12803
    | clrIndex  jClr  clr |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12804
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12805
    clrIndex := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12806
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12807
    "/ windows defaults:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12808
    "/  1: view background
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12809
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12810
    clrIndex == 1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12811
        clr := View defaultViewBackgroundColor.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12812
        clr isColor ifFalse: [ clr := Color gray: 50. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12813
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12814
    clrIndex == 2 ifTrue: [ clr := Color black. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12815
    clr isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12816
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12817
        self internalError: 'breakpoint'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12818
        ^ nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12819
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12820
    clr := clr on: (Screen current).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12821
    jClr := (self classForName: 'java.awt.Color') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12822
    jClr instVarNamed: 'pData' put: clr.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12823
    jClr instVarNamed: 'value' put: (clr rgbValue).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12824
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12825
"/ self halt.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12826
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12827
    ^ jClr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12829
    "Created: / 15.8.1997 / 15:38:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12830
    "Modified: / 4.1.1998 / 18:06:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12831
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12833
_WComponentPeer__beginValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12834
    "/ void _beginValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12835
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12837
    "Created: / 12.11.1998 / 19:10:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12838
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12840
_WComponentPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12841
    |view jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12843
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12845
    Object errorSignal catch:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12846
	view destroy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12847
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12848
    JavaWindowGroup removeView:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12850
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12851
    jPeer instVarNamed:'pData' put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12853
    "Created: / 7.1.1998 / 22:36:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12854
    "Modified: / 25.1.1998 / 16:43:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12855
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12857
_WComponentPeer__setBackground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12858
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12860
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12861
    view isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12862
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12863
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12864
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12865
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12866
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12867
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12869
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12871
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12872
"/        view viewBackground:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12873
"/        view backgroundPaint:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12874
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12875
"/        (view isMemberOf:JavaView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12876
"/            view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12877
"/            view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12878
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12879
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12880
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12881
    (view isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12882
	view := view scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12883
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12884
    view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12885
    view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12886
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12887
    "Created: / 4.1.1998 / 18:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12888
    "Modified: / 4.12.1998 / 17:26:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12889
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12890
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12891
_WComponentPeer__setForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12892
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12894
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12896
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12897
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12898
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12899
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12900
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12902
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12903
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12904
    view paint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12906
    "Created: / 4.1.1998 / 18:08:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12907
    "Modified: / 8.1.1998 / 17:32:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12908
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12910
_WComponentPeer_disable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12911
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12913
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12915
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12916
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12917
	view disable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12918
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12920
    "Created: / 6.1.1998 / 18:26:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12921
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12922
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12924
_WComponentPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12925
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12927
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12929
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12930
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12931
	view enable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12932
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12933
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12934
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12935
    "Created: / 13.1.1998 / 23:08:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12936
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12937
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12938
_WComponentPeer_endValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12939
    "/ void endValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12940
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12942
    "Created: / 12.11.1998 / 19:10:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12943
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12944
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12945
_WComponentPeer_getLocationOnScreen: nativeContext 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12946
    "/ java.awt.Point getLocationOnScreen ()
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12947
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12948
    | view  p  jP |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12949
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12950
    view := self viewForWPeer: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12951
    view isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12952
    p := view originRelativeTo: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12953
    jP := (self classForName: 'java.awt.Point') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12954
    jP instVarNamed: 'x' put: p x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12955
    jP instVarNamed: 'y' put: p y.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12956
    ^ jP
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12958
    "Modified: / 5.12.1998 / 14:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12959
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12960
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12961
_WComponentPeer_handleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12962
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12963
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12964
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12965
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12967
    |view jEv stEv ignore|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12969
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12970
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12971
	jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12972
	stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12973
	(stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12974
	    ignore := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12975
	    view isJavaView ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12976
		ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12977
	    ] ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12978
		view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12979
		    stEv type == #terminate ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12980
			ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12981
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12982
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12983
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12985
	    ignore ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12986
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12987
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12988
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12989
		view dispatchEvent:stEv. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12990
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12991
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12993
	    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12994
		('JAVA: WComponent - handleEvent ignored:' , stEv type) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12995
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12996
	    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12997
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12998
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12999
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13000
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13001
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13003
    "Created: / 6.1.1998 / 21:10:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13004
    "Modified: / 11.12.1998 / 01:04:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13005
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13007
_WComponentPeer_hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13008
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13009
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13010
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13011
"/ view isPopUpView ifTrue:[self halt].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13013
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13014
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13015
	view beInvisible
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13016
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13018
    "Created: / 7.1.1998 / 22:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13019
    "Modified: / 4.12.1998 / 17:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13020
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13022
_WComponentPeer_nativeHandleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13023
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13024
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13025
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13026
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13027
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13028
    |view jEv stEv|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13030
^self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13031
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13032
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13033
	(view isKindOf:JavaView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13034
	    jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13035
	    stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13036
	    (stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13037
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13038
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13039
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13040
		stEv sendEventWithFocusOn:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13041
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13042
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13043
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13044
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13045
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13046
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13047
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13049
    "Created: / 19.10.1998 / 21:26:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13050
    "Modified: / 19.10.1998 / 23:26:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13051
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13052
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13053
_WComponentPeer_requestFocus:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13054
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13055
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13056
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13057
"/ 'getFocus - ' print. view displayString printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13059
"/    view getKeyboardFocus
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13061
    "Created: / 7.1.1998 / 22:30:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13062
    "Modified: / 4.12.1998 / 19:42:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13063
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13065
_WComponentPeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13066
    self commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13068
    "Modified: / 18.3.1997 / 19:30:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13069
    "Created: / 4.1.1998 / 18:01:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13070
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13071
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13072
_WComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13073
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13075
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13076
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13077
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13078
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13079
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13080
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13081
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13082
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13083
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13084
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13085
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13086
"/        view viewBackground:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13087
"/        view backgroundPaint:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13088
"/    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13089
"/        (view isMemberOf:JavaView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13090
"/            view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13091
"/            view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13092
"/        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13093
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13094
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13095
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13096
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13097
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13098
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13099
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13101
    "Created: / 16.10.1998 / 02:16:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13102
    "Modified: / 16.10.1998 / 02:26:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13103
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13104
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13105
_WComponentPeer_setCursor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13106
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13108
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13109
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13111
    "Created: / 5.1.1998 / 01:52:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13112
    "Modified: / 25.1.1998 / 01:21:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13113
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13115
_WComponentPeer_setFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13116
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13118
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13119
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13120
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13121
    "Created: / 5.1.1998 / 00:55:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13122
    "Modified: / 25.1.1998 / 01:22:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13123
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13124
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13125
_WComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13126
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13127
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13128
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13129
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13130
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13131
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13132
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13133
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13135
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13136
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13138
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13139
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13140
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13141
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13143
    "Created: / 16.10.1998 / 02:18:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13144
    "Modified: / 16.10.1998 / 02:26:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13145
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13146
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13147
_WComponentPeer_setZOrderPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13148
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13150
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13151
"/    self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13152
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13153
"/ self internalError:'breakPoint'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13155
    "Created: / 4.1.1998 / 17:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13156
    "Modified: / 25.1.1998 / 01:22:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13159
_WComponentPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13160
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13162
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13164
    "/ frame views are under my browsers own control
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13165
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13166
	view beVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13167
	view realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13168
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13170
"/    view windowGroup notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13171
"/        windowServer addGroup:(view windowGroup)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13172
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13173
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13174
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13176
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13178
    "Created: / 5.1.1998 / 01:26:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13179
    "Modified: / 4.12.1998 / 17:43:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13180
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13181
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13182
_WComponentPeer_start:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13183
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13185
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13186
    "Created: / 5.1.1998 / 00:58:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13187
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13188
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13189
_WContainerPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13190
    "/ new with ns4.0 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13191
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13192
    "Created: / 16.10.1998 / 02:12:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13193
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13194
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13195
_WDefaultFontCharset_canConvert:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13196
    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13198
    "Modified: / 21.8.1997 / 15:56:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13199
    "Created: / 5.1.1998 / 01:55:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13200
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13202
_WDialogPeer__hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13203
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13205
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13207
    dialog hide.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13209
    "Created: / 7.1.1998 / 22:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13210
    "Modified: / 8.1.1998 / 17:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13211
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13213
_WDialogPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13214
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13215
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13216
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13217
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13218
"/ show does not work (yet); must setup windowgroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13219
"/ for it to get events ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13220
"/    dialog realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13222
dialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13223
"/dialog fixSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13224
"/dialog makeFullyVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13225
"/dialog openModal:[true] inGroup:JavaWindowGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13227
    "Created: / 7.1.1998 / 21:52:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13228
    "Modified: / 11.12.1998 / 14:43:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13229
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13230
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13231
_WDialogPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13232
    |jDialogPeer dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13233
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13234
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13235
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13236
    dialog := ModalBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13237
    jDialogPeer instVarNamed:'pData' put:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13239
    self createdWindowsView:dialog for:jDialogPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13240
    dialog windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13241
    JavaWindowGroup addTopView:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13243
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13244
	'WDialogPeer_create: ' print. dialog printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13245
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13247
    "Created: / 7.1.1998 / 21:51:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13248
    "Modified: / 15.1.1998 / 16:12:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13249
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13251
_WDrawingSurfaceInfo_getDepth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13252
    "/ int getDepth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13253
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13255
    "Created: / 12.11.1998 / 19:21:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13256
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13258
_WDrawingSurfaceInfo_getHBitmap:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13259
    "/ int getHBitmap ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13260
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13261
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13262
    "Created: / 12.11.1998 / 19:20:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13265
_WDrawingSurfaceInfo_getHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13266
    "/ int getHDC ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13267
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13269
    "Created: / 12.11.1998 / 19:20:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13270
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13272
_WDrawingSurfaceInfo_getHPalette:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13273
    "/ int getHPalette ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13274
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13276
    "Created: / 12.11.1998 / 19:21:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13277
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13279
_WDrawingSurfaceInfo_getHWnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13280
    "/ int getHWnd ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13281
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13283
    "Created: / 12.11.1998 / 19:20:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13284
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13286
_WDrawingSurfaceInfo_getPBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13287
    "/ int getPBits ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13288
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13290
    "Created: / 12.11.1998 / 19:20:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13291
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13293
_WDrawingSurfaceInfo_lock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13294
    "/ int lock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13295
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13297
    "Created: / 12.11.1998 / 19:20:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13298
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13300
_WDrawingSurfaceInfo_unlock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13301
    "/ void unlock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13302
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13304
    "Created: / 12.11.1998 / 19:20:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13305
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13307
_WEmbeddedFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13308
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13309
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13311
    "Created: / 12.11.1998 / 19:16:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13312
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13314
_WFileDialogPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13315
    |jDialogPeer jDialog dialogView stDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13316
     title dir pattern f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13318
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13319
    jDialog := jDialogPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13320
    dialogView := jDialogPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13322
    stDialog := FileSelectionBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13324
    dir := jDialog instVarNamed:'dir'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13325
    dir notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13326
	stDialog directory:(Java as_ST_String:dir).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13327
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13328
    pattern := jDialog instVarNamed:'file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13329
    pattern notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13330
	stDialog pattern:(Java as_ST_String:pattern).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13331
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13332
    title := jDialog instVarNamed:'title'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13333
    title notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13334
	stDialog title:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13335
	stDialog label:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13336
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13338
    stDialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13340
    stDialog accepted ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13341
	f := stDialog pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13343
	"/ cannot use the one below - it has a builtIn fileSeparator if '\' (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13344
	"/ jDialogPeer perform:#'handleSelected(Ljava/lang/String;)V' with:(Java as_String:f).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13346
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13347
	    perform:#'setFile(Ljava/lang/String;)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13348
	    with:(Java as_String:(f asFilename baseName)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13349
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13350
	    perform:#'setDirectory(Ljava/lang/String;)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13351
	    with:(Java as_String:(f asFilename directoryName , Filename separator asString)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13352
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13353
	    perform:#'setVisible(Z)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13354
	    with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13355
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13356
	jDialogPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13357
	    perform:#'handleCancel()V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13358
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13359
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13361
    "Created: / 7.1.1998 / 22:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13362
    "Modified: / 15.1.1998 / 13:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13363
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13365
_WFontMetrics_bytesWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13366
    "/ int bytesWidth (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13367
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13369
    "Created: / 12.11.1998 / 19:11:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13370
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13371
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13372
_WFontMetrics_getMFCharSegmentWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13373
    "get multi-font string-segment width.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13374
     Not yet supported - use standard strings width"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13376
    |jMetrics jFont jFontDescr stFont w
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13377
     bool1 cp offs lenght bp int1|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13379
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13380
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13381
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13382
    bool1 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13383
    cp := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13384
    offs := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13385
    lenght := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13386
    bp := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13387
    int1 := nativeContext argAt:8.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13388
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13389
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13390
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13391
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13392
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13393
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13394
    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13395
	stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13396
	jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13397
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13398
    w := stFont widthOf:cp from:offs+1 to:offs+lenght.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13399
    ^ w.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13401
    "Created: / 5.1.1998 / 01:57:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13402
    "Modified: / 13.1.1998 / 23:44:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13403
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13405
_WFontMetrics_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13406
    |jMetrics jFont stFont widths family name style size|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13407
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13408
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13409
    jFont := jMetrics instVarNamed:'font'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13411
    family := jFont instVarNamed:'family'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13412
    family := Java as_ST_String:family.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13414
    name := jFont instVarNamed:'name'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13415
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13417
    style := jFont instVarNamed:'style'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13418
    size := jFont instVarNamed:'size'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13420
    stFont := Font family:family size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13421
    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13422
        stFont := Font family:'helvetica' size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13423
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13424
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13425
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13426
"/    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13427
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13428
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13429
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13431
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13432
    jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13434
    jMetrics instVarNamed:'ascent'     put:stFont ascent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13435
    jMetrics instVarNamed:'descent'    put:stFont descent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13436
    jMetrics instVarNamed:'leading'    put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13437
    jMetrics instVarNamed:'height'     put:stFont height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13438
    jMetrics instVarNamed:'maxAscent'  put:stFont maxAscent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13439
    jMetrics instVarNamed:'maxDescent' put:stFont maxDescent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13440
    jMetrics instVarNamed:'maxHeight'  put:stFont maxHeight.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13441
    jMetrics instVarNamed:'maxAdvance' put:stFont maxWidth.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13443
    widths := Array new:256.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13444
    0 to:255 do:[:i |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13445
        widths at:(i+1) put:(stFont widthOf:(Character value:i))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13446
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13447
    jMetrics instVarNamed:'widths' put:widths.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13448
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13450
    "Modified: / 8.8.1997 / 12:06:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13451
    "Created: / 5.1.1998 / 01:54:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13452
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13453
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13454
_WFontMetrics_needsConversion:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13455
    |jFont jFontDescr stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13457
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13458
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13459
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13460
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13461
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13462
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13463
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13464
"/    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13465
"/        stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13466
"/        jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13467
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13468
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13469
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13470
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13472
    "Modified: / 17.8.1997 / 17:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13473
    "Created: / 5.1.1998 / 01:56:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13474
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13476
_WFramePeer__setIconImage:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13477
    |frame imgRep image|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13479
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13480
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13481
    imgRep notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13482
	image := imgRep instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13483
	(image notNil and:[image ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13484
	    frame icon:image.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13485
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13486
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13488
    "Created: / 27.4.1998 / 17:15:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13489
    "Modified: / 27.4.1998 / 17:18:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13490
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13492
_WFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13493
    |jFramePeer jFrame top frame pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13494
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13495
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13497
    "/ for now: a kludge to create an embedded frame for
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13498
    "/ mozillaFrames
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13500
    jFrame := jFramePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13501
    (jFrame notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13502
    and:[(pDataIdx := jFrame class instVarOffsetOf:'pData') notNil])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13503
    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13504
	((frame := jFrame instVarAt:pDataIdx) notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13505
	and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13506
	    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13507
		'JAVA: targetFrame view already created: ' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13508
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13509
	    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13510
	    pDataIdx := jFramePeer class instVarOffsetOf:'pNativeWidget'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13511
	    pDataIdx isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13512
		"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13513
		pDataIdx := jFramePeer class instVarOffsetOf:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13514
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13515
	    jFramePeer instVarAt:pDataIdx put:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13516
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13517
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13518
	frame := jFramePeer instVarNamed:'pData'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13519
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13521
    (frame notNil and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13522
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13523
	    'JAVA: frame view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13524
	    jFramePeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13525
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13526
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13527
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13528
"/        frame := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13529
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13530
"/        JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13532
	frame := JavaTopView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13533
	frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13534
	frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13535
	self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13536
	JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13538
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13539
"/        frame := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13540
"/        frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13541
"/        frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13542
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13543
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13544
        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13545
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13546
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13547
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13548
	'JAVA: WFramePeer_create: ' print. jFramePeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13549
	' frame: ' print. frame printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13550
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13552
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13553
    "Modified: / 3.12.1998 / 00:10:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13554
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13556
_WFramePeer_setMenuBar0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13557
    |frame jMenuBarPeer menuPanel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13559
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13561
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13562
    jMenuBarPeer isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13563
	"/ mhmh - JAVA wants to remove the frames menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13564
	"/ but I have no handle on it (for destroy).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13565
	"/ search it in subViews of the frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13566
	frame subViews copy do:[:v |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13567
	    (v isKindOf:MenuPanel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13568
		v destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13569
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13570
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13571
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13572
	menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13574
	menuPanel origin:0.0@0.0 corner:1.0@(menuPanel preferredExtent y).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13575
	frame addSubView:menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13576
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13577
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13579
    "Created: / 7.1.1998 / 21:41:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13580
    "Modified: / 8.1.1998 / 17:35:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13581
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13582
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13583
_WFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13584
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13585
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13586
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13588
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13589
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13590
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13591
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13592
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13593
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13594
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13595
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13596
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13597
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13598
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13599
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13600
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13601
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13602
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13603
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13605
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13606
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13607
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13608
    "Created: / 16.10.1998 / 02:21:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13609
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13610
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13611
_WFramePeer_setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13612
    |view jString string|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13613
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13614
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13616
    jString := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13617
    string := Java as_ST_String:jString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13619
"/ 'JAVA: WFramePeer_pSetTitle: ' print. string print. ' ' print. view printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13621
    view label:string.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13622
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13623
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13624
    "Modified: / 8.1.1998 / 17:37:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13625
    "Created: / 27.1.1998 / 21:42:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13626
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13627
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13628
_WGraphics__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13629
    "/ void _dispose()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13630
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13632
    "Created: / 12.11.1998 / 19:17:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13633
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13635
_WGraphics_changeClip:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13636
    |gc x y w h r bool|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13638
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13640
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13641
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13642
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13643
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13644
    bool := (nativeContext argAt:5) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13646
    r := Rectangle left:x top:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13647
"/ 'WGraphics_changeClip: ' infoPrint. r infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13648
    gc clippingRectangle:r.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13650
    "Created: / 6.1.1998 / 20:57:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13651
    "Modified: / 20.10.1998 / 19:40:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13652
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13654
_WGraphics_clearRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13655
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13656
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13657
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13658
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13660
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13661
	'JAVA: drawing on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13662
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13663
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13665
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13666
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13667
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13668
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13670
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13671
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13672
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13673
    gc clearRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13675
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13676
    "Modified: / 8.1.1998 / 00:21:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13677
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13679
_WGraphics_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13680
    "/ void close (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13681
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13683
    "Created: / 12.11.1998 / 19:19:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13684
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13686
_WGraphics_copyArea:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13687
    |gc srcX srcY w h deltaX deltaY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13688
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13689
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13690
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13691
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13692
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13693
	'JAVA: copyArea on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13694
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13695
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13697
    srcX := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13698
    srcY := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13699
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13700
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13701
    deltaX := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13702
    deltaY := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13704
    gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13705
	copyFrom:gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13706
	x:srcX y:srcY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13707
	toX:srcX+deltaX y:srcY+deltaY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13708
	width:w height:h
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13710
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13711
    "Modified: / 9.4.1998 / 22:01:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13712
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13713
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13714
_WGraphics_createFromComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13715
    |jGraphics jWin view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13716
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13717
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13718
    jWin := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13719
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13720
    view := KnownWindows at:jWin ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13721
    view isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13722
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13723
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13724
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13725
    view clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13727
"/    "/ just a consistency check ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13728
"/    (jWin instVarNamed:'xid') ~~ view ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13729
"/        self halt:'consistency check'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13730
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13732
    jGraphics instVarNamed:'pData' put:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13734
    "Created: / 6.1.1998 / 20:55:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13735
    "Modified: / 20.10.1998 / 19:38:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13736
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13738
_WGraphics_createFromGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13739
    |jGraphics graphics gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13741
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13742
    graphics := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13743
    gc := graphics instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13745
    jGraphics instVarNamed:'pData' put:gc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13746
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13748
    "Created: / 8.1.1998 / 00:47:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13749
    "Modified: / 20.10.1998 / 19:37:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13750
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13752
_WGraphics_createFromHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13753
    "/ void createFromHDC (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13754
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13755
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13756
    "Created: / 12.11.1998 / 19:17:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13757
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13758
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13759
_WGraphics_createFromPrintJob:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13760
    "/ void createFromPrintJob (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13761
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13763
    "Created: / 12.11.1998 / 19:17:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13764
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13766
_WGraphics_dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13767
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13769
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13770
    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13771
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13773
    "Created: / 6.1.1998 / 20:58:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13774
    "Modified: / 20.10.1998 / 19:35:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13775
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13777
_WGraphics_drawArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13778
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13780
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13781
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13782
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13784
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13785
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13786
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13787
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13788
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13789
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13791
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13792
	'drawArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13793
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13794
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13795
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13796
    gc 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13797
	displayArcX:x y:y 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13798
	width:w height:h 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13799
	from:startAngle angle:(endAngle - startAngle).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13801
    "Created: / 6.1.1998 / 21:00:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13802
    "Modified: / 28.1.1999 / 17:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13803
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13805
_WGraphics_drawBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13806
    "/ void drawBytes (byte[] int int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13807
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13809
    "Created: / 12.11.1998 / 19:18:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13810
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13812
_WGraphics_drawLine:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13813
    |gc x y x2 y2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13814
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13815
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13816
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13817
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13819
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13820
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13821
    x2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13822
    y2 := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13823
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13824
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13825
	'drawLine x/y= ' print. x print. '@' print. y print. ' x2/y2= ' print. x2 print. '@' print. y2 printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13826
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13827
    gc displayLineFromX:x y:y toX:x2 y:y2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13829
    "Created: / 6.1.1998 / 20:59:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13830
    "Modified: / 8.1.1998 / 00:34:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13831
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13833
_WGraphics_drawMFCharsConvertedSegment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13834
    "/ int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13835
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13837
    "Created: / 12.11.1998 / 19:18:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13838
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13840
_WGraphics_drawMFCharsSegment:nativeContext       
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13841
    |jFont jFontDescr s gc x y offs len|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13843
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13844
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13846
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13847
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13848
    s := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13849
    offs := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13850
    len := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13851
    x := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13852
    y := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13854
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13855
	'drawMFCharsSegment x/y= ' print. x print. '@' print. y print. ' s= ' print. s printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13856
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13857
    gc displayString:s from:offs+1 to:offs+len x:x y:y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13858
    ^ (gc font onDevice:(gc graphicsDevice)) widthOf:s.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13860
    "Created: / 6.1.1998 / 21:01:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13861
    "Modified: / 25.1.1998 / 20:45:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13862
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13864
_WGraphics_drawOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13865
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13867
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13868
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13869
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13871
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13872
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13873
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13874
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13876
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13877
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13878
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13879
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13880
    gc displayArcX:x y:y width:w height:h from:0 angle:360.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13882
    "Created: / 8.1.1998 / 00:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13883
    "Modified: / 9.4.1998 / 22:10:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13884
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13886
_WGraphics_drawPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13887
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13889
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13890
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13891
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13893
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13894
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13895
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13896
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13897
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13898
	'drawPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13899
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13901
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13902
    gc displayPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13903
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13904
    "Created: / 8.1.1998 / 00:57:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13905
    "Modified: / 8.1.1998 / 00:57:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13906
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13908
_WGraphics_drawPolyline:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13909
    "/ void drawPolyline (int[] int[] int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13910
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13912
    "Created: / 12.11.1998 / 19:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13913
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13915
_WGraphics_drawRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13916
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13918
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13919
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13920
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13922
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13923
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13924
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13925
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13927
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13928
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13930
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13932
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13933
    "Created: / 8.1.1998 / 00:59:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13934
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13936
_WGraphics_drawRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13937
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13939
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13940
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13941
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13942
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13943
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13944
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13945
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13946
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13948
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13949
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13951
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13952
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13953
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13954
    "Created: / 8.1.1998 / 00:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13955
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13956
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13957
_WGraphics_drawSFChars:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13958
    "/ void drawSFChars (char[]s, int pos1, int len, int x, int y)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13959
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13960
    |gc str x y idx1 nChars|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13962
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13963
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13965
    str := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13966
    idx1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13967
    nChars := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13968
    x := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13969
    y := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13971
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13972
	'drawSFChars x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13973
	       ' s= ' print. str printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13974
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13975
    gc displayString:str from:idx1+1 to:idx1+nChars x:x y:y
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13977
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13978
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13980
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13982
_WGraphics_fillArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13983
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13985
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13986
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13987
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13989
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13990
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13991
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13992
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13993
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13994
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13996
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13997
	'fillArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13998
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13999
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14000
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14001
    gc fillArcX:x y:y width:w height:h from:startAngle angle:(endAngle - startAngle)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14003
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14004
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14005
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14007
_WGraphics_fillOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14008
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14009
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14010
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14011
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14012
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14014
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14015
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14016
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14017
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14019
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14020
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14021
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14022
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14023
    gc fillArcX:x y:y width:w height:h from:0 angle:360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14025
    "Created: / 8.1.1998 / 00:46:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14026
    "Modified: / 8.1.1998 / 00:46:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14027
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14029
_WGraphics_fillPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14030
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14032
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14033
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14034
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14036
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14037
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14038
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14040
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14041
	'fillPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14042
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14044
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14045
    gc fillPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14047
    "Created: / 8.1.1998 / 00:58:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14048
    "Modified: / 25.1.1998 / 11:03:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14049
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14051
_WGraphics_fillRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14052
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14054
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14055
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14056
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14058
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14059
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14060
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14061
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14062
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14063
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14064
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14065
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14066
    gc fillRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14068
    "Created: / 15.8.1997 / 15:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14069
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14070
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14072
_WGraphics_fillRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14073
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14075
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14076
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14077
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14079
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14080
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14081
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14082
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14084
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14085
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14087
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14089
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14090
    "Created: / 8.1.1998 / 00:59:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14091
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14092
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14093
_WGraphics_getClipBounds: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14094
    | gc  rect  r  x  y  w  h |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14095
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14096
    gc := self gcForWGraphics: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14097
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14098
"/    gc isNil ifTrue:[^ nil].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14099
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14100
    rect := (self classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14101
    (gc isMemberOf: JavaView) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14102
        "/ r := gc clippingRectangleOrNil. 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14103
        r := gc getNextUpdateRectangle.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14104
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14105
    r isNil ifTrue: [ r := gc clippingRectangleOrNil. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14106
    r isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14107
        x := y := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14108
        w := (gc width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14109
        h := (gc height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14110
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14111
        x := (r left).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14112
        y := (r top).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14113
        w := (r width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14114
        h := (r height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14115
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14116
    rect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14117
    rect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14118
    rect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14119
    rect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14120
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14121
"/ 'WGraphics__getClipBounds ' infoPrint. (x@y extent:w@h) infoPrintCR.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14122
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14123
    ^ rect
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14125
    "Created: / 6.1.1998 / 20:58:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14126
    "Modified: / 23.12.1998 / 20:14:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14127
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14129
_WGraphics_imageCreate:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14130
    |jGraphics imgRep|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14131
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14132
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14133
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14135
    jGraphics instVarNamed:'pData' put:(imgRep instVarNamed:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14136
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14138
    "Created: / 11.1.1998 / 16:34:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14139
    "Modified: / 17.1.1998 / 12:37:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14140
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14142
_WGraphics_pSetFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14143
    |gc jFont stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14145
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14146
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14148
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14149
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14150
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14151
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14152
	gc font:stFont
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14153
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14155
    "Created: / 6.1.1998 / 20:56:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14156
    "Modified: / 15.1.1998 / 12:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14159
_WGraphics_pSetForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14160
    |gc rgb clr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14162
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14164
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14165
    rgb isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14166
        "/ its a java.awt.Color
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14167
        rgb := rgb instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14168
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14169
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14170
    gc paint:(clr nearestOn:gc device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14172
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14173
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14175
    "Created: / 6.1.1998 / 20:56:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14176
    "Modified: / 23.12.1998 / 20:10:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14177
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14179
_WGraphics_print:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14180
    "/ void print (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14181
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14183
    "Created: / 12.11.1998 / 19:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14184
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14186
_WGraphics_removeClip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14187
    "/ void removeClip ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14188
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14190
    "Created: / 12.11.1998 / 19:18:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14191
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14193
_WGraphics_setPaintMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14194
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14196
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14197
    gc function:#copy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14199
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14200
	'copyMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14201
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14203
    "Created: / 8.1.1998 / 00:33:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14204
    "Modified: / 28.1.1998 / 23:25:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14205
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14207
_WGraphics_setXORMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14208
    |gc jColor rgb invColor device|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14209
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14210
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14211
    jColor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14212
    device := gc graphicsDevice.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14213
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14214
"/    "/ on trueColor systems, use the provided
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14215
"/    "/ rgb value for inverting.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14216
"/    "/ on palette systems, use white ^ black
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14217
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14218
"/    device visualType == #TrueColor ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14219
"/        rgb := jColor instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14220
"/        rgb := rgb bitAnd:16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14221
"/        rgb == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14222
"/            rgb := 16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14223
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14224
"/        invColor := rgb
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14225
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14226
"/        invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14227
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14228
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14229
    invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14230
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14231
"/    gc foreground:(Color colorId:invColor)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14232
"/       background:device blackColor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14233
    device 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14234
	setForeground:invColor background:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14235
	in:gc gcId.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14236
    gc function:#xor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14237
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14238
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14239
	'xorMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14240
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14242
    "Created: / 8.1.1998 / 00:36:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14243
    "Modified: / 28.1.1998 / 23:45:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14244
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14246
_WLabelPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14247
    |jLabelPeer jLabel jFrame frame label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14248
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14250
    jLabelPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14251
    jLabel := jLabelPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14252
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14253
    lbl := jLabel instVarNamed:'text'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14254
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14255
	lbl := Java as_ST_String:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14256
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14258
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14259
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14261
    label := Label in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14262
    label sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14263
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14264
	label label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14265
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14266
    self createdWindowsView:label for:jLabelPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14268
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14269
	'WLabelPeer_create: ' print. frame print. ' -> ' print. label printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14270
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14272
    "Created: / 7.1.1998 / 21:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14273
    "Modified: / 13.1.1998 / 22:10:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14274
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14276
_WLabelPeer_setAlignment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14277
    |label alignNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14279
    alignNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14280
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14281
    label notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14282
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14284
    "Created: / 7.1.1998 / 21:43:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14285
    "Modified: / 8.1.1998 / 17:35:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14286
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14288
_WLabelPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14289
    |label jString str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14291
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14293
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14294
    jString notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14295
	str := Java as_ST_String:jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14296
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14297
    label label:str
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14299
    "Created: / 7.1.1998 / 21:43:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14300
    "Modified: / 3.12.1998 / 14:59:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14301
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14303
_WListPeer__addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14304
    |jString index1 length selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14305
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14306
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14308
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14309
    index1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14310
    length := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14312
    (m := selListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14313
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14314
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14315
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14317
    "Created: / 26.10.1998 / 20:11:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14318
    "Modified: / 14.11.1998 / 01:21:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14319
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14321
_WListPeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14322
    |jString index selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14324
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14326
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14327
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14329
    m := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14330
    m isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14331
	Transcript showCR:'JAVA: access to listModel of closed view'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14332
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14333
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14334
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14335
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14337
    "Created: / 24.1.1998 / 21:10:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14338
    "Modified: / 2.11.1998 / 17:12:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14339
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14341
_WListPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14342
    |jListPeer jFrame frame selectionInListView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14344
    jListPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14346
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14347
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14349
    selectionInListView := ScrollableView for:SelectionInListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14350
    selectionInListView action:[:index | jListPeer perform:#'handleListChanged(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14351
    selectionInListView doubleClickAction:[:index | jListPeer perform:#'handleAction(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14352
    selectionInListView model:(SelectionInList new list:(List new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14353
    selectionInListView useIndex:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14355
    self createdWindowsView:selectionInListView for:jListPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14357
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14358
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. selectionInListView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14359
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14361
    "Created: / 24.1.1998 / 19:58:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14362
    "Modified: / 9.4.1998 / 22:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14363
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14365
_WListPeer_delItems:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14366
    |jString index1 index2 selListView model list|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14367
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14368
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14370
    index1 := (nativeContext argAt:1) + 1. "/ java indices are 0-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14371
    index2 := (nativeContext argAt:2) + 1. "/ st indices are 1-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14372
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14373
    model := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14374
    model isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14375
    list := model list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14376
    list size >= index1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14377
	list removeFromIndex:index1 toIndex:(index2 min:list size).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14378
	model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14379
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14381
    "Created: / 9.4.1998 / 22:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14382
    "Modified: / 30.12.1998 / 20:00:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14383
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14384
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14385
_WListPeer_deselect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14386
    "/ void deselect (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14387
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14388
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14389
    "Created: / 12.11.1998 / 19:15:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14390
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14392
_WListPeer_getMaxWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14393
    "/ int getMaxWidth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14395
    ^ 1000 "/ a dummy value
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14397
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14399
    "Created: / 14.11.1998 / 10:44:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14400
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14402
_WListPeer_isSelected:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14403
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14405
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14407
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14408
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14409
	(model selectionIndex == (index + 1))  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14410
	ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14411
	    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14412
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14413
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14414
    ^ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14416
    "Created: / 24.1.1998 / 22:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14417
    "Modified: / 25.1.1998 / 01:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14418
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14420
_WListPeer_makeVisible:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14421
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14423
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14425
    lineNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14427
    selectionInListView makeLineVisible:(lineNr + 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14429
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14430
    "Created: / 20.10.1998 / 14:14:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14431
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14433
_WListPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14434
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14436
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14438
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14439
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14440
	model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14441
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14443
    "Created: / 24.1.1998 / 22:32:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14444
    "Modified: / 25.1.1998 / 01:28:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14445
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14446
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14447
_WListPeer_setMultipleSelections:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14448
    |selectionInListView onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14450
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14452
    onOff := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14453
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14454
    selectionInListView multipleSelectOk:onOff.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14456
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14457
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14459
_WListPeer_updateMaxItemWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14460
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14462
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14464
    "Created: / 26.10.1998 / 20:09:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14465
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14466
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14467
_WMenuBarPeer_addMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14468
    "/ void addMenu (java.awt.Menu)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14469
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14471
    "Created: / 12.11.1998 / 19:14:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14472
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14474
_WMenuBarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14475
    |jMenuBarPeer jMenuBar jFrame frame menuBar|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14476
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14477
    jMenuBarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14478
    jMenuBar := jMenuBarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14480
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14481
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14483
    menuBar := MenuPanel in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14484
    menuBar verticalLayout:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14485
    menuBar realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14487
    self createdWindowsView:menuBar for:jMenuBarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14489
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14490
	'WMenuBarPeer_create: ' print. frame print. ' -> ' print. menuBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14491
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14493
    "Created: / 7.1.1998 / 21:38:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14494
    "Modified: / 25.1.1998 / 13:19:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14495
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14497
_WMenuBarPeer_delMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14498
    "/ void delMenu (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14499
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14501
    "Created: / 12.11.1998 / 19:14:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14502
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14504
_WMenuItemPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14505
    |jMenuItemPeer item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14507
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14508
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14509
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14510
"/ what should be done here ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14512
    "Created: / 29.3.1998 / 17:16:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14513
    "Modified: / 29.3.1998 / 17:16:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14514
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14516
_WMenuItemPeer__setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14517
    "/ void _setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14519
    |jMenuItemPeer item label|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14521
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14522
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14523
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14524
	'JAVA [warning]: NULL menu item in setLabel' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14525
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14526
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14528
    label := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14529
    label isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14530
	label := ''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14531
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14532
	label := Java as_ST_String:label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14533
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14534
    item label:label.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14536
    "Modified: / 11.12.1998 / 16:40:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14537
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14539
_WMenuItemPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14540
    |jMenuItemPeer jMenuItem jMenuPeer menu item lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14541
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14542
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14543
    jMenuItem := jMenuItemPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14545
    jMenuPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14546
    menu := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14547
    (menu isNil or:[menu == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14548
	'JAVA: no menu to create item in' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14549
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14550
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14551
    item := menu createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14552
    item value:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14553
		jMenuItemPeer perform:#'handleAction(I)V' with:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14554
	       ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14556
    lbl := jMenuItem instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14557
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14558
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14559
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14560
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14562
    jMenuItemPeer instVarNamed:'pData' put:item.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14564
    WindowOPTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14565
	'WMenuItem_create: ' print. menu print. ' -> ' print. item printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14566
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14568
    "Created: / 7.1.1998 / 21:40:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14569
    "Modified: / 3.12.1998 / 20:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14570
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14572
_WMenuItemPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14573
    |jMenuItemPeer item state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14575
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14576
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14577
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14578
	'JAVA [warning]: NULL menu item in enable' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14579
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14580
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14581
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14582
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14583
    item enabled:(state ~~ 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14585
    "Created: / 7.1.1998 / 22:41:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14586
    "Modified: / 11.12.1998 / 16:40:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14587
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14589
_WMenuPeer_addSeparator:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14590
    "/ void addSeparator ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14591
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14593
    "Created: / 12.11.1998 / 19:13:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14594
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14596
_WMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14597
    |jMenuPeer jMenu jMenuBarPeer menuPanel menu
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14598
     lbl item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14600
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14601
    jMenu := jMenuPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14603
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14604
    menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14605
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14606
    item := menuPanel createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14607
    lbl := jMenu instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14608
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14609
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14610
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14611
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14613
    menu := MenuPanel new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14614
    item submenu:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14615
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14616
    jMenuPeer instVarNamed:'pData' put:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14618
'createMenuPeer: ' print. menuPanel print. ' -> ' print. menu printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14619
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14620
    "Created: / 7.1.1998 / 21:39:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14621
    "Modified: / 13.1.1998 / 22:11:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14622
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14624
_WMenuPeer_createSubMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14625
    "/ void createSubMenu (sun.awt.windows.WMenuPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14626
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14627
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14628
    "Created: / 12.11.1998 / 19:13:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14629
    "Modified: / 3.12.1998 / 21:41:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14630
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14632
_WMenuPeer_delItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14633
    "/ void delItem (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14634
    |jMenuPeer jMenu menuPanel itemIndex|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14635
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14636
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14637
    menuPanel := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14638
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14639
    itemIndex := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14640
    menuPanel remove:itemIndex.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14642
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14644
    "Created: / 12.11.1998 / 19:13:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14645
    "Modified: / 10.12.1998 / 21:12:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14647
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14648
_WPanelPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14649
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14650
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14651
    "Created: / 27.1.1998 / 21:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14652
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14653
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14654
_WPopupMenuPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14655
    "/ void _show (java.awt.Event)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14656
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14657
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14658
    "Created: / 12.11.1998 / 19:12:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14659
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14661
_WPopupMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14662
    "/ void createMenu (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14663
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14665
    "Created: / 12.11.1998 / 19:12:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14666
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14668
_WPrintJob_end:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14669
    "/ void end ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14670
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14672
    "Created: / 12.11.1998 / 19:11:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14673
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14675
_WScrollPanePeer__getHScrollbarHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14676
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14677
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14678
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14679
    ^ HorizontalScrollBar new preferredExtent y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14680
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14681
    "Created: / 9.4.1998 / 17:30:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14682
    "Modified: / 10.4.1998 / 14:59:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14683
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14685
_WScrollPanePeer__getVScrollbarWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14686
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14688
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14689
    ^ ScrollBar new preferredExtent x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14691
    "Created: / 9.4.1998 / 17:29:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14692
    "Modified: / 10.4.1998 / 15:00:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14693
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14694
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14695
_WScrollPanePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14696
    |jScrollPanePeer jScrollPane jFrame frame scrollPane
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14697
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14699
    jScrollPanePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14700
    jScrollPane := jScrollPanePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14702
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14703
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14705
    "/ create with a simple view ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14706
    scrollPane := ScrollableView for:JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14708
    self createdWindowsView:scrollPane for:jScrollPanePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14710
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14711
	'WScrollPanePeer_create: ' print. frame print. ' -> ' print. scrollPane printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14712
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14713
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14714
    "Created: / 9.4.1998 / 17:25:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14715
    "Modified: / 9.4.1998 / 22:06:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14716
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14717
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14718
_WScrollPanePeer_getOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14719
    "/ int getOffset (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14720
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14722
    "Created: / 12.11.1998 / 19:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14723
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14725
_WScrollPanePeer_getScrollChild:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14726
    "/ java.awt.Component getScrollChild ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14727
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14729
    "Created: / 12.11.1998 / 19:17:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14730
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14732
_WScrollPanePeer_setInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14734
    "Modified: / 9.4.1998 / 17:26:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14735
    "Created: / 9.4.1998 / 17:29:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14736
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14738
_WScrollPanePeer_setScrollPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14739
    "/ void setScrollPosition (int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14740
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14742
    "Created: / 12.11.1998 / 19:16:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14745
_WScrollPanePeer_setSpans:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14747
    "Created: / 9.4.1998 / 17:31:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14748
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14750
_WScrollbarPeer__setValues:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14751
    |scrollBar value visibleAmount min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14753
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14755
    value := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14756
    visibleAmount := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14757
    min := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14758
    max := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14760
    (min ~~ 0 or:[max ~~ 100]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14761
	scrollBar thumb start:min stop:max.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14762
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14764
    scrollBar thumbOrigin:value thumbHeight:visibleAmount.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14766
    "Created: / 13.1.1998 / 22:13:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14767
    "Modified: / 14.10.1998 / 14:53:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14768
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14769
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14770
_WScrollbarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14771
    |jScrollbarPeer jScrollbar jFrame frame scrollBar
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14772
     min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14773
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14774
    jScrollbarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14775
    jScrollbar := jScrollbarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14777
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14778
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14780
    (jScrollbar instVarNamed:'orientation') == 0 "HORIZONTAL" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14781
	scrollBar := HorizontalScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14782
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14783
	scrollBar := ScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14784
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14785
    min := jScrollbar instVarNamed:'minimum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14786
    max := jScrollbar instVarNamed:'maximum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14787
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14788
    scrollBar scrollDownAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14789
			scrollBar thumbOrigin:(scrollBar thumbOrigin + ((max-min)/10) min:max).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14790
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14791
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14792
    scrollBar scrollUpAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14793
			scrollBar thumbOrigin:(scrollBar thumbOrigin - ((max-min)/10) max:min).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14794
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14795
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14796
    scrollBar scrollAction:[:org |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14797
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:org rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14798
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14799
    self createdWindowsView:scrollBar for:jScrollbarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14801
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14802
	'WScrollbarPeer_create: ' print. frame print. ' -> ' print. scrollBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14803
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14805
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14806
    "Modified: / 14.10.1998 / 15:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14807
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14809
_WScrollbarPeer_setLineIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14810
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14812
Transcript showCR:'JavaVM: WScrollbarPeer_setLineIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14814
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14816
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14817
"/    scrollBar thumb lineIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14819
    "Created: / 25.1.1998 / 11:52:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14820
    "Modified: / 14.10.1998 / 14:53:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14821
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14823
_WScrollbarPeer_setPageIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14824
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14826
Transcript showCR:'JavaVM: WScrollbarPeer_setPageIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14827
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14828
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14830
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14831
"/    scrollBar thumb pageIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14833
    "Created: / 25.1.1998 / 11:52:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14834
    "Modified: / 14.10.1998 / 14:54:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14835
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14837
_WTextAreaPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14838
    |jTextAreaPeer jFrame frame editTextView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14840
    jTextAreaPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14842
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14843
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14845
    editTextView := HVScrollableView for:EditTextView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14846
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14847
    self createdWindowsView:editTextView for:jTextAreaPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14848
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14849
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14850
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. editTextView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14851
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14853
    "Created: / 7.1.1998 / 21:49:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14854
    "Modified: / 15.1.1998 / 12:56:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14855
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14857
_WTextAreaPeer_insertText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14858
    |textView pos string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14860
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14861
    (textView isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14862
	textView := textView scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14863
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14864
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14865
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14866
    string := Java as_ST_String:jstring.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14867
    pos := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14869
    textView insert:string at:pos.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14870
    textView cursorToCharacterPosition:pos + string size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14871
    textView makeCursorVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14872
"/ textView invalidateRepairNow:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14873
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14874
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14875
    "Created: / 7.1.1998 / 21:50:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14876
    "Modified: / 5.4.1998 / 17:37:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14877
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14879
_WTextAreaPeer_replaceText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14880
    "/ void replaceText (java.lang.String int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14881
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14883
    "Created: / 12.11.1998 / 19:11:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14884
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14886
_WTextComponentPeer_enableEditing:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14887
    |textView enabled|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14889
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14890
    enabled := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14892
    ^ textView readOnly:enabled not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14894
    "Created: / 5.1.1998 / 01:29:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14895
    "Modified: / 25.1.1998 / 16:29:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14898
_WTextComponentPeer_getSelectionEnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14899
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14901
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14903
    ^ textView characterPositionOfSelectionEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14905
    "Created: / 8.1.1998 / 17:41:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14906
    "Modified: / 15.1.1998 / 15:47:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14907
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14908
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14909
_WTextComponentPeer_getSelectionStart:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14910
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14912
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14913
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14914
    ^ textView characterPositionOfSelection - 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14916
    "Created: / 15.8.1997 / 15:45:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14917
    "Modified: / 15.1.1998 / 15:46:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14918
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14920
_WTextComponentPeer_getText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14921
    |textView string jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14923
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14924
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14925
    string := textView contents asString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14926
    jString := Java as_String:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14927
    ^ jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14929
    "Created: / 6.1.1998 / 21:05:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14930
    "Modified: / 8.1.1998 / 17:36:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14931
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14933
_WTextComponentPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14934
    |textView selStart selEnd|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14936
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14937
    selStart := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14938
    selEnd := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14940
    selStart == selEnd ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14941
	"/ clear selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14942
	textView unselect.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14943
	"/ and set caret
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14944
	textView cursorToCharacterPosition:selStart + 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14945
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14946
	"/ change selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14947
	textView selectFromCharacterPosition:selStart+1 to:selEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14948
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14949
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14950
    "Created: / 15.8.1997 / 15:45:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14951
    "Modified: / 15.1.1998 / 21:55:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14952
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14954
_WTextComponentPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14955
    |textView string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14956
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14957
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14959
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14960
    jstring notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14961
	string := Java as_ST_String:jstring
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14962
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14963
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14964
    textView contents:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14966
    "Created: / 5.1.1998 / 01:28:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14967
    "Modified: / 11.12.1998 / 12:16:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14968
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14969
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14970
_WTextFieldPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14971
    |jTextFieldPeer jFrame frame editField|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14973
    jTextFieldPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14975
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14976
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14977
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14978
    editField := EditField in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14980
    self createdWindowsView:editField for:jTextFieldPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14982
    editField crAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14983
			jTextFieldPeer perform:#handleAction.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14984
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14985
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14986
	'WTextFieldPeer_create: ' print. frame print. ' -> ' print. editField printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14987
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14989
    "Created: / 5.1.1998 / 01:27:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14990
    "Modified: / 4.11.1998 / 21:07:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14991
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14993
_WTextFieldPeer_setEchoCharacter:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14994
    |editField char|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14996
    editField := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14997
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14998
    char := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14999
    editField passwordCharacter:(Character value:char).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15000
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15001
    "Created: / 25.1.1998 / 16:28:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15002
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15003
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15004
_WToolkit_beep:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15005
    "/ void beep ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15007
    Screen current beep
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15009
    "Created: / 12.11.1998 / 19:09:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15010
    "Modified: / 11.12.1998 / 12:15:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15011
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15013
_WToolkit_eventLoop:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15014
    (JavaEventThread notNil and:[JavaEventThread isDead not]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15015
	'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15016
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15018
    JavaEventThread := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15019
    [
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15020
	[true] whileTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15021
	    AbortSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15022
		ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15023
	    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15024
		self doWindowsEventThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15025
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15026
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15027
    ] valueNowOrOnUnwindDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15028
	JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15029
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15030
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15031
    "Created: / 6.1.1998 / 21:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15032
    "Modified: / 8.1.1999 / 17:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15035
_WToolkit_getComboHeightOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15036
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15038
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15039
    "Created: / 22.10.1998 / 00:59:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15040
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15042
_WToolkit_getScreenHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15043
    ^ Screen current height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15044
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15045
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15046
    "Created: / 13.1.1998 / 09:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15047
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15049
_WToolkit_getScreenResolution:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15050
    ^ Screen current resolution x rounded
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15052
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15053
    "Created: / 17.1.1998 / 21:54:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15054
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15055
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15056
_WToolkit_getScreenWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15057
    ^ Screen current width
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15059
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15060
    "Created: / 13.1.1998 / 09:24:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15061
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15062
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15063
_WToolkit_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15065
    "Created: / 3.1.1998 / 02:30:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15066
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15068
_WToolkit_loadSystemColors:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15069
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15071
    "Modified: / 18.3.1997 / 18:43:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15072
    "Created: / 5.1.1998 / 02:19:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15073
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15075
_WToolkit_makeColorModel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15076
    "/ java.awt.image.ColorModel makeColorModel ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15077
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15079
    "Created: / 12.11.1998 / 19:08:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15080
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15082
_WToolkit_sync:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15083
    "/ void sync ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15084
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15085
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15086
    "Created: / 12.11.1998 / 19:09:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15087
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15089
_WWindowPeer__setResizable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15090
    |view onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15091
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15092
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15094
    onOff := (nativeContext argAt:1) == 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15095
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15096
	onOff ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15097
	    view minExtent:10@10.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15098
	    view maxExtent:(Screen current extent).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15099
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15100
	    view minExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15101
	    view maxExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15102
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15103
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15104
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15105
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15106
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15107
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15109
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15111
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15113
    "Created: / 5.1.1998 / 00:57:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15114
    "Modified: / 16.1.1998 / 18:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15115
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15117
_WWindowPeer__setTitle:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15118
    |view jString string|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15120
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15122
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15123
    string := Java as_ST_String:jString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15125
"/ 'JAVA: WWindowPeer_pSetTitle: ' print. string print. ' ' print. view printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15127
    view label:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15128
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15130
    "Created: / 5.1.1998 / 00:57:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15131
    "Modified: / 8.1.1998 / 17:37:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15132
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15134
_WWindowPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15135
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15136
    |jWindowPeer jWindow top window pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15138
    jWindowPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15140
    jWindow := jWindowPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15141
    window := jWindowPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15143
    (window notNil and:[window ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15144
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15145
	    'JAVA: window view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15146
	    jWindowPeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15147
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15148
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15149
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15150
"/        window := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15151
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15152
"/        JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15154
	window := JavaPopUpView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15155
	window borderWidth:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15156
	window level:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15157
	window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15158
	window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15159
	self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15160
	JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15162
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15163
"/        window := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15164
"/        window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15165
"/        window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15166
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15167
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15169
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15170
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15171
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15172
	'JAVA: WWindowPeer_create: ' print. jWindowPeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15173
	' window: ' print. window printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15174
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15176
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15177
    "Modified: / 4.12.1998 / 17:37:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15178
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15179
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15180
_WWindowPeer_getContainerElement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15181
    "/ java.awt.Component getContainerElement (java.awt.Container int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15182
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15184
    "Created: / 12.11.1998 / 19:10:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15185
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15186
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15187
_WWindowPeer_toBack:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15188
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15190
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15191
    view lower.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15193
    "Created: / 7.5.1998 / 00:23:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15194
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15196
_WWindowPeer_toFront:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15197
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15199
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15200
    view raise.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15202
    "Created: / 9.4.1998 / 22:17:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15203
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15205
_WWindowPeer_updateInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15206
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15208
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15209
    "Created: / 4.1.1998 / 18:09:04 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15210
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15211
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15212
_Win32Process_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15213
    "really create a win32 process"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15214
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15215
    |env cmd jProcess p inPipe outPipe errorPipe|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15217
    jProcess := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15218
    cmd := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15219
    cmd := Java as_ST_String:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15220
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15221
    env := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15222
    env notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15223
	self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15224
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15225
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15227
    p := Win32Process new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15228
    p command:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15229
    p environment:env.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15230
    p inStream:inPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15231
    p outStream:outPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15232
    p errorStream:errorPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15233
    p directory:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15234
    p startProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15235
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15237
    jProcess instVarNamed:'handle' put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15238
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15239
    "Created: / 10.11.1998 / 19:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15240
    "Modified: / 10.11.1998 / 21:34:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15241
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15242
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15243
_X11FontMetrics_getMFCharSegmentWidth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15244
    "get multi-font string-segment width.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15245
     Not yet supported - use standard strings width"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15246
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15247
    |jMetrics jFont jFontDescr stFont w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15248
     bool1 cp offs lenght bp int1|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15250
    jMetrics := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15251
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15252
    jFontDescr := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15253
    cp := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15254
    lenght := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15256
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15257
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15258
        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15259
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15261
    stFont device isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15262
        stFont := stFont on:Display.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15263
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15264
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15265
    w := stFont widthOf:cp from:1 to:lenght.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15266
    ^ w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15267
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15268
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15269
_X11FontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15270
    ^ self _WFontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15271
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15272
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15273
_X11GraphicsDevice_getConfigType:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15274
    "/ new with jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15275
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15276
    |configNr cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15277
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15278
    "/ for now, only one config.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15279
    configNr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15281
    cls := Java classNamed:'java.awt.GraphicsDevice'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15282
    ^ cls instVarNamed:'TYPE_RASTER_SCREEN'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15283
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15284
    "Created: / 28.1.1998 / 22:19:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15285
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15286
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15287
_X11GraphicsDevice_getNumConfigs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15288
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15290
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15291
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15292
    "Created: / 28.1.1998 / 22:13:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15293
    "Modified: / 28.1.1998 / 22:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15294
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15295
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15296
_X11GraphicsEnvironment_getNumScreens:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15297
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15299
    "/ could return the actual number of screens ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15301
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15303
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15304
    "Modified: / 28.1.1998 / 22:12:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15305
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15306
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15307
_X11GraphicsEnvironment_initDisplay:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15308
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15310
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15311
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15313
_X11Graphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15314
    ^ self _WGraphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15315
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15317
_X11Graphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15318
    ^ self _WGraphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15319
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15321
_X11Graphics_disposeImpl:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15322
    ^ self _WGraphics_dispose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15323
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15324
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15325
_X11Graphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15326
    ^ self _WGraphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15327
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15329
_X11Graphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15330
    ^ self _WGraphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15331
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15332
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15333
_X11Graphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15334
    ^ self _WGraphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15335
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15337
_X11Graphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15338
    ^ self _WGraphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15339
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15341
_X11Graphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15342
    ^ self _WGraphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15343
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15345
_X11Graphics_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15346
    ^ self _WGraphics_pSetForeground:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15347
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15348
1090
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15349
!JavaVM class methodsFor:'native - stx.libjava.tests'!
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15350
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15351
_stx_libjava_tests_MonitorTests_abort: nativeContext
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15352
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15353
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15354
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15355
    AbortOperationRequest raiseRequest.
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15356
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15357
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15358
! !
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 15359
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15360
!JavaVM class methodsFor:'native - sun.io'!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15361
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15362
_sun_io_Win32ErrorMode_setErrorMode: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15363
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15364
    <javanative: 'sun/io/Win32ErrorMode' name: 'setErrorMode(J)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15365
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15366
    "FIXME: Ignored for now"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15367
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15368
    ^0
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 15369
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 15370
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15371
!JavaVM class methodsFor:'native - sun.java2d'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15372
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15373
_sun_java2d_Disposer_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15374
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15375
    <javanative: 'sun/java2d/Disposer' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15376
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15377
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15378
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15379
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 15380
!JavaVM class methodsFor:'native - sun.management'!
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 15381
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15382
_sun_management_MemoryImpl_getMemoryManagers0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15383
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15384
    <javanative: 'sun/management/MemoryImpl' name: 'getMemoryManagers0()[Ljava/lang/management/MemoryManagerMXBean;'>
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15385
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15386
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15387
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15388
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15389
    beanCls := self classForName: 'java.lang.management.MemoryManagerMXBean'.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15390
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15391
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15392
    "Modified: / 04-12-2011 / 19:57:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15393
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15394
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15395
_sun_management_MemoryImpl_getMemoryPools0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15396
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15397
    <javanative: 'sun/management/MemoryImpl' name: 'getMemoryPools0()[Ljava/lang/management/MemoryPoolMXBean;'>
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15398
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15399
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15400
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15401
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15402
    beanCls := self classForName: 'java.lang.management.MemoryPoolMXBean'.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15403
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15404
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15405
    "Modified: / 04-12-2011 / 19:58:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15406
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 15407
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15408
_sun_management_VMManagementImpl_getStartupTime: nativeContext 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15409
    <javanative: 'sun/management/VMManagementImpl' name: 'getStartupTime()J'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15410
    ^ StartupTime.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15411
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15412
    "Modified: / 03-11-2011 / 19:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15413
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15414
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15415
_sun_management_VMManagementImpl_getVersion0: nativeContext 
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 15416
    <javanative: 'sun/management/VMManagementImpl' name: 'getVersion0'>
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15417
    ^ Java as_String: '1.2'.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15418
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15419
    "Modified: / 03-11-2011 / 18:42:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15420
!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15421
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15422
_sun_management_VMManagementImpl_initOptionalSupportFields: nativeContext 
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15423
    <javanative: 'sun/management/VMManagementImpl' name: 'initOptionalSupportFields()V'>
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15424
    | cls |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 15425
    cls := nativeContext receiver.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15426
    self breakPoint:#mh.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15427
    cls instVarNamed: #compTimeMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15428
    cls instVarNamed: #threadContentionMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15429
    cls instVarNamed: #currentThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15430
    cls instVarNamed: #otherThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15431
    cls instVarNamed: #bootClassPathSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15432
    cls instVarNamed: #synchronizerUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15433
    cls instVarNamed: #objectMonitorUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15434
    ^ self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15435
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15436
    "Modified: / 03-11-2011 / 19:29:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15437
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15438
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15439
_sun_management_VMManagementImpl_isThreadCpuTimeEnabled: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15440
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15441
    <javanative: 'sun/management/VMManagementImpl' name: 'isThreadCpuTimeEnabled()Z'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 15442
1083
vranyj1
parents: 1081
diff changeset
 15443
    ^ 0 "/false should be safe, we'll see...
vranyj1
parents: 1081
diff changeset
 15444
vranyj1
parents: 1081
diff changeset
 15445
    "Modified: / 03-11-2011 / 22:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 15446
! !
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 15447
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15448
!JavaVM class methodsFor:'native - sun.misc'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15449
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15450
_sun_misc_GC_maxObjectInspectionAge: nativeContext
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15451
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15452
    <javanative: 'sun/misc/GC' name: 'maxObjectInspectionAge()J'>
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15453
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15454
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15455
    /**
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15456
     * Returns the maximum <em>object-inspection age</em>, which is the number
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15457
     * of real-time milliseconds that have elapsed since the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15458
     * least-recently-inspected heap object was last inspected by the garbage
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15459
     * collector.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15460
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15461
     * <p> For simple stop-the-world collectors this value is just the time
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15462
     * since the most recent collection.  For generational collectors it is the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15463
     * time since the oldest generation was most recently collected.  Other
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15464
     * collectors are free to return a pessimistic estimate of the elapsed
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15465
     * time, or simply the time since the last full collection was performed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15466
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15467
     * <p> Note that in the presence of reference objects, a given object that
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15468
     * is no longer strongly reachable may have to be inspected multiple times
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15469
     * before it can be reclaimed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15470
     */
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15471
    public static native long maxObjectInspectionAge();
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15472
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15473
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15474
    ^Random nextIntegerBetween: 0 and: 3600. "Just return some number"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15475
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15476
    "Modified: / 02-12-2011 / 21:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15477
!
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 15478
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15479
_sun_misc_Signal_findSignal: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15480
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15481
    <javanative: 'sun/misc/Signal' name: 'findSignal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15482
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15483
        | input signame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15484
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15485
    input := Java as_ST_String: (aJavaContext argAt: 1).
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15486
    OperatingSystem isUNIXlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15487
        signame := 'SIG', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15488
        ^UnixOperatingSystem signalNamed: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15489
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15490
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15491
        signame := 'sig', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15492
        ^Win32OperatingSystem perform: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15493
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 15494
    self error: 'Unsupported OS'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15495
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15496
    "Created: / 11-12-2010 / 15:22:07 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15497
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15498
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15499
_sun_misc_Signal_handle0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15501
    <javanative: 'sun/misc/Signal' name: 'handle0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15503
        self breakPoint: #libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15504
    ^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15505
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15506
    "Created: / 11-12-2010 / 16:33:38 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15507
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15508
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15509
_sun_misc_Unsafe_allocateInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15510
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15511
    <javanative: 'sun/misc/Unsafe' name: 'allocateInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15512
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15513
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15514
    /** Allocate an instance but do not run any constructor.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15515
        Initializes the class if it has not yet been. */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15516
    public native Object allocateInstance(Class cls)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15517
        throws InstantiationException;
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15518
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15519
    | cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15520
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15521
    cls classInit.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15522
    ^cls newCleared
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15523
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15524
    "Created: / 05-02-2011 / 23:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15525
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15526
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15527
_sun_misc_Unsafe_allocateMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15528
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15529
    <javanative: 'sun/misc/Unsafe' name: 'allocateMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15531
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15532
    | size |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15533
    size := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15534
    ^SimulatedNativeMemory malloc: size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15536
    "Created: / 07-12-2010 / 21:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15537
    "Modified: / 07-12-2010 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15538
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15539
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15540
_sun_misc_Unsafe_arrayBaseOffset: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15541
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15542
    <javanative: 'sun/misc/Unsafe' name: 'arrayBaseOffset'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15543
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15544
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15545
    * Report the offset of the first element in the storage allocation of a
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15546
    * given array class.  If {@link #arrayIndexScale} returns a non-zero value
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15547
    * for the same class, you may use that scale factor, together with this
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15548
    * base offset, to form new offsets to access elements of arrays of the
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15549
    * given class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15550
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15551
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15552
    * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15553
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15554
    public native int arrayBaseOffset(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15555
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15556
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15557
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15558
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15559
    "Modified (comment): / 10-08-2011 / 01:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15560
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15561
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15562
_sun_misc_Unsafe_arrayIndexScale: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15563
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15564
    <javanative: 'sun/misc/Unsafe' name: 'arrayIndexScale'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15565
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15566
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15567
      /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15568
      * Report the scale factor for addressing elements in the storage
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15569
      * allocation of a given array class.  However, arrays of 'narrow' types
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15570
      * will generally not work properly with accessors like {@link
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15571
      * #getByte(Object, int)}, so the scale factor for such classes is reported
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15572
      * as zero.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15573
      *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15574
      * @see #arrayBaseOffset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15575
      * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15576
      * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15577
      */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15578
    public native int arrayIndexScale(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15579
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15580
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15581
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15582
    "Modified: / 10-08-2011 / 01:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15583
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15584
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15585
_sun_misc_Unsafe_compareAndSwapInt: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15587
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15588
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15589
    ^self _sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15590
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15591
    "Created: / 22-11-2010 / 18:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15592
    "Modified: / 07-08-2011 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15593
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15594
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15595
_sun_misc_Unsafe_compareAndSwapLong: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15596
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15597
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapLong'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15598
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15599
        "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15600
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15601
     * Atomically update Java variable to <tt>x</tt> if it is currently
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15602
     * holding <tt>expected</tt>.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15603
     * @return <tt>true</tt> if successful
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15604
     */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15605
    public final native boolean compareAndSwapInt(Object o, long offset,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15606
                                                  long expected,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15607
                                                  long new);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15608
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15609
    | o offset expected real new ok |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15610
    o := aJavaContext argAt:1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15611
    offset := aJavaContext argAt:2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15612
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15613
    expected := aJavaContext argAt:4.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15614
    new := aJavaContext argAt:6.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15615
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15616
    OperatingSystem blockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15617
    real := o instVarAt: offset.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15618
    (real == expected)
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15619
            ifTrue:[o instVarAt: offset put: new. ok := 1]
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15620
            ifFalse:[ok := 1].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15621
    OperatingSystem unblockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15622
    ^ok
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15623
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15624
    "Modified: / 18-10-2011 / 21:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15625
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15626
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15627
_sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15628
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15629
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15630
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15631
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15632
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15633
     * Atomically update Java variable to <tt>x</tt> if it is currently
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15634
     * holding <tt>expected</tt>.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15635
     * @return <tt>true</tt> if successful
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15636
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15637
    public final native boolean compareAndSwapInt(Object o, long offset,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15638
                                                  int expected,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15639
                                                  int new);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15640
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15641
    | o offset expected real new ok |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15642
    o := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15643
    offset := aJavaContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15644
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15645
    expected := aJavaContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15646
    new := aJavaContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15648
    OperatingSystem blockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15649
    real := o instVarAt: offset.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15650
    (real == expected)
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15651
            ifTrue:[o instVarAt: offset put: new. ok := 1]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15652
            ifFalse:[ok := 1].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15653
    OperatingSystem unblockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15654
    ^ok
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15655
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 15656
    "Modified: / 07-08-2011 / 21:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15657
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15658
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15659
_sun_misc_Unsafe_defineClass: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15660
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15661
    <javanative: 'sun/misc/Unsafe' name: 'defineClass'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15662
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15663
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15664
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15665
     * Tell the VM to define a class, without security checks.  By default, the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15666
     * class loader and protection domain come from the caller's class.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15667
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15668
    public native Class defineClass(String name, byte[] b, int off, int len,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15669
                                    ClassLoader loader,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15670
                                    ProtectionDomain protectionDomain);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15671
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15672
    | name b off len loader protectionDomain bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15673
    name := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15674
    b := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15675
    off := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15676
    len := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15677
    loader := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15678
    protectionDomain := nativeContext argAt: 6.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15679
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15680
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15681
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15682
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15683
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15684
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15685
    cls classLoader: loader.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15686
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15687
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15688
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15689
    "Created: / 05-02-2011 / 22:57:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15690
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 15691
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15692
_sun_misc_Unsafe_ensureClassInitialized: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15694
    <javanative: 'sun/misc/Unsafe' name: 'ensureClassInitialized'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15696
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15697
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15698
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15699
     "Sometimes there is a nil. I don't know why, so I did quickfix"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15700
    self breakPoint:#libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15701
    class ifNotNil:[class classInit.].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15702
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15703
    "Created: / 11-12-2010 / 15:01:36 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15704
    "Modified: / 25-12-2010 / 09:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15705
    "Modified: / 08-01-2011 / 15:11:21 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15706
    "Modified: / 28-01-2011 / 15:19:31 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15707
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15708
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15709
_sun_misc_Unsafe_freeMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15710
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15711
    <javanative: 'sun/misc/Unsafe' name: 'freeMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15712
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15713
    | address  |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15714
    address := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15715
    ^SimulatedNativeMemory free: address
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15716
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15717
    "Created: / 09-12-2010 / 17:56:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15718
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15719
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15720
_sun_misc_Unsafe_getBoolean: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15721
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15722
    <javanative: 'sun/misc/Unsafe' name: 'getBoolean(Ljava/lang/Object;J)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15723
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15724
    | o offset |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15725
    o := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15726
    offset := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15727
    ^o instVarAt: offset
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15728
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15729
    "Modified: / 19-11-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15730
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15731
1151
vranyj1
parents: 1150
diff changeset
 15732
_sun_misc_Unsafe_getByte: nativeContext
vranyj1
parents: 1150
diff changeset
 15733
vranyj1
parents: 1150
diff changeset
 15734
    <javanative: 'sun/misc/Unsafe' name: 'getByte(Ljava/lang/ObjectJ)B'>
vranyj1
parents: 1150
diff changeset
 15735
    <javanative: 'sun/misc/Unsafe' name: 'getByte(J)B'>
vranyj1
parents: 1150
diff changeset
 15736
vranyj1
parents: 1150
diff changeset
 15737
    | object offset address |
vranyj1
parents: 1150
diff changeset
 15738
    nativeContext numArgs == 3 ifTrue:[
vranyj1
parents: 1150
diff changeset
 15739
        "getByte(Ljava/lang/Object;J)V"
vranyj1
parents: 1150
diff changeset
 15740
        object := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15741
        offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15742
        ^object instVarAt: offset
vranyj1
parents: 1150
diff changeset
 15743
    ].
vranyj1
parents: 1150
diff changeset
 15744
    nativeContext numArgs == 2 ifTrue:[
vranyj1
parents: 1150
diff changeset
 15745
        "getByte(J)V"
vranyj1
parents: 1150
diff changeset
 15746
        address := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15747
        ^SimulatedNativeMemory byteAt: address
vranyj1
parents: 1150
diff changeset
 15748
    ].
vranyj1
parents: 1150
diff changeset
 15749
vranyj1
parents: 1150
diff changeset
 15750
    self internalError:'Unssuported getByte() variant'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15752
    "Created: / 09-12-2010 / 17:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15753
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15754
1151
vranyj1
parents: 1150
diff changeset
 15755
_sun_misc_Unsafe_getChar: nativeContext
vranyj1
parents: 1150
diff changeset
 15756
vranyj1
parents: 1150
diff changeset
 15757
    <javanative: 'sun/misc/Unsafe' name: 'getChar(Ljava/lang/Object;J)C'>
vranyj1
parents: 1150
diff changeset
 15758
vranyj1
parents: 1150
diff changeset
 15759
    | o offset |
vranyj1
parents: 1150
diff changeset
 15760
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15761
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15762
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 15763
vranyj1
parents: 1150
diff changeset
 15764
    "Modified: / 22-11-2011 / 14:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 15765
!
vranyj1
parents: 1150
diff changeset
 15766
vranyj1
parents: 1150
diff changeset
 15767
_sun_misc_Unsafe_getFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 15768
vranyj1
parents: 1150
diff changeset
 15769
    <javanative: 'sun/misc/Unsafe' name: 'getFloat(Ljava/lang/Object;J)F'>
vranyj1
parents: 1150
diff changeset
 15770
vranyj1
parents: 1150
diff changeset
 15771
    | o offset |
vranyj1
parents: 1150
diff changeset
 15772
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15773
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15774
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 15775
vranyj1
parents: 1150
diff changeset
 15776
    "Modified: / 22-11-2011 / 14:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 15777
!
vranyj1
parents: 1150
diff changeset
 15778
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15779
_sun_misc_Unsafe_getFloatVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15780
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15781
    <javanative: 'sun/misc/Unsafe' name: 'getFloatVolatile(Ljava/lang/Object;J)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15782
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15783
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15784
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15785
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15786
_sun_misc_Unsafe_getInt: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15787
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15788
    <javanative: 'sun/misc/Unsafe' name: 'getInt'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15789
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15790
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15791
    * Fetches a integer value from a given Java variable.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15792
    */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15793
    public native int getInt(Object o, long offset);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15794
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15795
    | o offset |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15796
    o := nativeContext argAt: 1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15797
    offset := nativeContext argAt: 2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15798
    ^o instVarAt: offset
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15799
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 15800
    "Modified: / 18-10-2011 / 20:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15801
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 15802
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15803
_sun_misc_Unsafe_getLongVolatile: nativeContext
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15804
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15805
    <javanative: 'sun/misc/Unsafe' name: 'getLongVolatile(Ljava/lang/Object;J)J'>
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15806
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15807
    | o offset |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15808
    o := nativeContext argAt: 1.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15809
    offset := nativeContext argAt: 2.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15810
    ^o instVarAt: offset
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15811
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15812
    "Modified: / 31-08-2011 / 23:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15813
!
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 15814
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15815
_sun_misc_Unsafe_getObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15816
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15817
    <javanative: 'sun/misc/Unsafe' name: 'getObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15818
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15819
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15820
    * Fetches a reference value from a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15821
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15822
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15823
    public native Object getObject(Object o, long offset);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15824
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15825
    | o offset |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15826
    o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15827
    offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15828
    ^o instVarAt: offset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15829
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15830
    "Modified: / 10-08-2011 / 01:40:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15831
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 15832
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15833
_sun_misc_Unsafe_getObjectVolatile: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15834
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15835
    <javanative: 'sun/misc/Unsafe' name: 'getObjectVolatile(Ljava/lang/Object;J)Ljava/lang/Object;'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15836
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15837
    /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15838
    * Fetches a reference value from a given Java variable, with volatile
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15839
    * load semantics. Otherwise identical to {@link #getObject(Object, long)}
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15840
    */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15841
    public native Object getObjectVolatile(Object o, long offset);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15842
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15843
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15844
    | o offset |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15845
    o := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15846
    offset := nativeContext argAt: 2.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15847
    ^o instVarAt: offset
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15848
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15849
    "Modified (comment): / 17-08-2011 / 09:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15850
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 15851
1151
vranyj1
parents: 1150
diff changeset
 15852
_sun_misc_Unsafe_getShort: nativeContext
vranyj1
parents: 1150
diff changeset
 15853
vranyj1
parents: 1150
diff changeset
 15854
    <javanative: 'sun/misc/Unsafe' name: 'getShort(Ljava/lang/Object;J)S'>
vranyj1
parents: 1150
diff changeset
 15855
vranyj1
parents: 1150
diff changeset
 15856
    | o offset |
vranyj1
parents: 1150
diff changeset
 15857
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15858
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15859
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 15860
vranyj1
parents: 1150
diff changeset
 15861
    "Modified: / 22-11-2011 / 14:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 15862
!
vranyj1
parents: 1150
diff changeset
 15863
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15864
_sun_misc_Unsafe_objectFieldOffset: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15865
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15866
    <javanative: 'sun/misc/Unsafe' name: 'objectFieldOffset'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15867
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15868
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15869
    | javaFieldObject |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15870
    javaFieldObject := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15871
    ^javaFieldObject instVarNamed: #slot
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15872
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15873
    "Created: / 22-11-2010 / 17:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15874
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15875
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15876
_sun_misc_Unsafe_pageSize: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15877
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15878
    <javanative: 'sun/misc/Unsafe' name: 'pageSize'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15879
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 15880
    ^ 4096"4K is the page size on x86, I think... "
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 15881
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 15882
    "Modified: / 25-11-2011 / 19:24:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15883
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 15884
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15885
_sun_misc_Unsafe_park: nativeContext
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15886
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15887
    <javanative: 'sun/misc/Unsafe' name: 'park(ZJ)V'>
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15888
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15889
    /**
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15890
     * Block current thread, returning when a balancing
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15891
     * <tt>unpark</tt> occurs, or a balancing <tt>unpark</tt> has
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15892
     * already occurred, or the thread is interrupted, or, if not
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15893
     * absolute and time is not zero, the given time nanoseconds have
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15894
     * elapsed, or if absolute, the given deadline in milliseconds
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15895
     * since Epoch has passed, or spuriously (i.e., returning for no
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15896
     * 'reason'). Note: This operation is in the Unsafe class only
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15897
     * because <tt>unpark</tt> is, so it would be strange to place it
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15898
     * elsewhere.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15899
     */
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15900
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15901
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15902
    | absolute millis tout process sema |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15903
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15904
    self breakPoint: #jv info: 'Unifinished, validate!!'.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15905
    self breakPoint: #mh info: 'Unifinished, validate!!'.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15906
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15907
    absolute := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15908
    millis := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15909
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15910
    millis ~~ 0 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15911
        absolute == 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15912
            tout := millis - OperatingSystem getOSTime.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15913
            tout < 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15914
                tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15915
            ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15916
        ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15917
            tout := millis.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15918
        ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15919
    ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15920
        tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15921
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15922
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15923
    ParkUnparkSemaphores isNil ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15924
        ParkUnparkSemaphores := Dictionary new.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15925
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15926
    process := Processor activeProcess.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15927
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15928
    [ sema waitWithTimeoutMs: tout ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15929
        ensure:[ ParkUnparkSemaphores removeKey: process ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15930
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15931
    "Modified: / 19-11-2011 / 11:47:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15932
!
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 15933
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15934
_sun_misc_Unsafe_putBoolean: nativeContext
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15935
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15936
    <javanative: 'sun/misc/Unsafe' name: 'putBoolean(Ljava/lang/Object;JZ)V'>
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15937
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15938
    "Like putInt:, see _sun_misc_Unsafe_putInt:"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15939
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15940
    | o offset x |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15941
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15942
    o := nativeContext argAt: 1.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15943
    offset := nativeContext argAt: 2.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15944
    x := nativeContext argAt: 4.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15945
    ^o instVarAt: offset put: x.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15946
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15947
    "Modified: / 27-10-2011 / 16:23:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15948
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 15949
1151
vranyj1
parents: 1150
diff changeset
 15950
_sun_misc_Unsafe_putByte: nativeContext
vranyj1
parents: 1150
diff changeset
 15951
vranyj1
parents: 1150
diff changeset
 15952
    <javanative: 'sun/misc/Unsafe' name: 'putByte(Ljava/lang/Object;JB)V'>
vranyj1
parents: 1150
diff changeset
 15953
vranyj1
parents: 1150
diff changeset
 15954
    | o offset x |
vranyj1
parents: 1150
diff changeset
 15955
vranyj1
parents: 1150
diff changeset
 15956
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15957
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15958
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 15959
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 15960
vranyj1
parents: 1150
diff changeset
 15961
    "Modified: / 22-11-2011 / 14:50:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 15962
!
vranyj1
parents: 1150
diff changeset
 15963
vranyj1
parents: 1150
diff changeset
 15964
_sun_misc_Unsafe_putChar: nativeContext
vranyj1
parents: 1150
diff changeset
 15965
vranyj1
parents: 1150
diff changeset
 15966
    <javanative: 'sun/misc/Unsafe' name: 'putChar(Ljava/lang/Object;JC)V'>
vranyj1
parents: 1150
diff changeset
 15967
vranyj1
parents: 1150
diff changeset
 15968
    | o offset x |
vranyj1
parents: 1150
diff changeset
 15969
vranyj1
parents: 1150
diff changeset
 15970
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 15971
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 15972
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 15973
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 15974
vranyj1
parents: 1150
diff changeset
 15975
    "Modified: / 22-11-2011 / 14:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 15976
!
vranyj1
parents: 1150
diff changeset
 15977
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15978
_sun_misc_Unsafe_putDouble: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15979
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15980
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15981
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15982
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15983
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15984
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15985
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15986
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15987
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15988
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15989
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15990
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15991
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15992
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15993
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15994
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15995
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15996
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15997
        SimulatedNativeMemory doubleAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15998
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 15999
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16000
    self internalError:'Unknown variant of putDouble() native!!'
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16001
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16002
    "Modified: / 30-08-2011 / 15:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16003
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16004
1151
vranyj1
parents: 1150
diff changeset
 16005
_sun_misc_Unsafe_putFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 16006
vranyj1
parents: 1150
diff changeset
 16007
    <javanative: 'sun/misc/Unsafe' name: 'putFloat(Ljava/lang/Object;JF)V'>
vranyj1
parents: 1150
diff changeset
 16008
vranyj1
parents: 1150
diff changeset
 16009
    | o offset x |
vranyj1
parents: 1150
diff changeset
 16010
vranyj1
parents: 1150
diff changeset
 16011
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16012
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16013
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 16014
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 16015
vranyj1
parents: 1150
diff changeset
 16016
    "Modified: / 22-11-2011 / 14:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16017
!
vranyj1
parents: 1150
diff changeset
 16018
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16019
_sun_misc_Unsafe_putInt: nativeContext
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16020
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16021
    <javanative: 'sun/misc/Unsafe' name: 'putInt'>
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16022
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16023
    /**
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16024
     * Stores a value into a given Java variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16025
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16026
     * The first two parameters are interpreted exactly as with
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16027
     * {@link #getInt(Object, long)} to refer to a specific
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16028
     * Java variable (field or array element).  The given value
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16029
     * is stored into that variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16030
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16031
     * The variable must be of the same type as the method
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16032
     * parameter <code>x</code>.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16033
     *
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16034
     * @param o Java heap object in which the variable resides, if any, else
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16035
     *        null
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16036
     * @param offset indication of where the variable resides in a Java heap
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16037
     *        object, if any, else a memory address locating the variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16038
     *        statically
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16039
     * @param x the value to store into the indicated Java variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16040
     * @throws RuntimeException No defined exceptions are thrown, not even
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16041
     *         {@link NullPointerException}
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16042
     */
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16043
    public native void putInt(Object o, long offset, int x);
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16044
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16045
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16046
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16047
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16048
    o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16049
    offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16050
    x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16051
    ^o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16052
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16053
    "Modified: / 30-08-2011 / 15:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16054
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16055
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16056
_sun_misc_Unsafe_putLong: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16057
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16058
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16059
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16060
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16061
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16062
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16063
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16064
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16065
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16066
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16067
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16068
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16069
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16070
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16071
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16072
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16073
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16074
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16075
        SimulatedNativeMemory longAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16076
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16077
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16078
    self internalError:'Unknown variant of putLong() native!!'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16079
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16080
    "Created: / 07-12-2010 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16081
    "Modified: / 30-08-2011 / 16:01:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16082
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16083
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16084
_sun_misc_Unsafe_putObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16085
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16086
    <javanative: 'sun/misc/Unsafe' name: 'putObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16087
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16088
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16089
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16090
     * Stores a reference value into a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16091
     * <p>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16092
     * Unless the reference <code>x</code> being stored is either null
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16093
     * or matches the field type, the results are undefined.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16094
     * If the reference <code>o</code> is non-null, car marks or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16095
     * other store barriers for that object (if the VM requires them)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16096
     * are updated.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16097
     * @see #putInt(Object, int, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16098
     */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16099
     public native void putObject(Object o, long offset, Object x);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16100
     "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16101
     | o offset x |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16102
     o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16103
     offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16104
     x := nativeContext argAt: 4.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16105
     ^o instVarAt: offset put: x.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16106
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16107
    "Modified: / 10-08-2011 / 01:40:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16108
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16109
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16110
_sun_misc_Unsafe_putObjectVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16111
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16112
    <javanative: 'sun/misc/Unsafe' name: 'putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16113
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16114
    | o offset x |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16115
    o := nativeContext argAt: 1.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16116
    offset := nativeContext argAt: 2.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16117
    x := nativeContext argAt: 4.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16118
    ^o instVarAt: offset put: x.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16119
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16120
    "Modified: / 04-12-2011 / 20:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16121
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16122
1151
vranyj1
parents: 1150
diff changeset
 16123
_sun_misc_Unsafe_putShort: nativeContext
vranyj1
parents: 1150
diff changeset
 16124
vranyj1
parents: 1150
diff changeset
 16125
    <javanative: 'sun/misc/Unsafe' name: 'putShort(Ljava/lang/Object;JS)V'>
vranyj1
parents: 1150
diff changeset
 16126
vranyj1
parents: 1150
diff changeset
 16127
    | o offset x |
vranyj1
parents: 1150
diff changeset
 16128
vranyj1
parents: 1150
diff changeset
 16129
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16130
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16131
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 16132
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 16133
vranyj1
parents: 1150
diff changeset
 16134
    "Modified: / 22-11-2011 / 14:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16135
!
vranyj1
parents: 1150
diff changeset
 16136
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16137
_sun_misc_Unsafe_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16138
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16139
    <javanative: 'sun/misc/Unsafe' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16141
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16142
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16144
    "Created: / 25-10-2010 / 16:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16145
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16146
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16147
_sun_misc_Unsafe_setMemory: nativeContext
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16148
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16149
    <javanative: 'sun/misc/Unsafe' name: 'setMemory(JJB)V'>
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16150
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16151
    ^ UnimplementedNativeMethodSignal raise
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16152
!
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16153
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16154
_sun_misc_Unsafe_staticFieldBase: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16155
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16156
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldBase(Ljava/lang/reflect/Field;)Ljava/lang/Object;'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16157
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16158
      /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16159
      * Report the location of a given static field, in conjunction with {@link
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16160
      * #staticFieldOffset}.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16161
      * <p>Fetch the base 'Object', if any, with which static fields of the
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16162
      * given class can be accessed via methods like {@link #getInt(Object,
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16163
      * long)}.  This value may be null.  This value may refer to an object
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16164
      * which is a 'cookie', not guaranteed to be a real Object, and it should
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16165
      * not be used in any way except as argument to the get and put routines in
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16166
      * this class.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16167
      */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16168
      public native Object staticFieldBase(Field f);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16169
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16170
     | javaFieldObject javaClassObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16171
     javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16172
     javaClassObject := javaFieldObject instVarNamed: #clazz.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16173
     ^self classForJavaClassObject: javaClassObject.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16174
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16175
    "Modified: / 17-08-2011 / 09:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16176
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16177
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16178
_sun_misc_Unsafe_staticFieldOffset: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16179
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16180
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldOffset(Ljava/lang/reflect/Field;)J'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16181
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16182
    | javaFieldObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16183
    javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16184
    ^javaFieldObject instVarNamed: #slot
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16185
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16186
    "Modified: / 17-08-2011 / 09:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16187
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16188
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16189
_sun_misc_VM_initialize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16191
    <javanative: 'sun/misc/VM' name: 'initialize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16193
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16194
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16195
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16196
    "Created: / 26-11-2010 / 18:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16197
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16198
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16199
!JavaVM class methodsFor:'native - sun.nio.ch'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16200
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16201
_sun_nio_ch_FileChannelImpl_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16202
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16203
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'initIDs()J'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16204
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16205
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16206
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16207
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16208
!JavaVM class methodsFor:'native - sun.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16209
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16210
_sun_reflect_ConstantPool_getDoubleAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16211
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16212
    <javanative: 'sun/reflect/ConstantPool' name: 'getDoubleAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16213
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16214
        | cpool  index  double |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16215
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16216
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16217
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16218
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16219
    double := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16220
    self assert:double isFloat description:'Not a float constant!!'.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16221
    ^ double
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16222
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16223
    "Modified: / 25-02-2011 / 18:40:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16224
    "Created: / 28-02-2011 / 17:24:17 / Marcel Hlopko <hlopik@gmail.com>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
 16225
    "Modified: / 02-11-2011 / 11:24:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16226
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16227
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16228
_sun_reflect_ConstantPool_getIntAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16229
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16230
    <javanative: 'sun/reflect/ConstantPool' name: 'getIntAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16231
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16232
        | cpool  index  int |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16233
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16234
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16235
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16236
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16237
    int := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16238
    self assert:int isInteger description:'Not an integer constant!!'.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16239
    ^ int
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16240
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16241
    "Modified: / 25-02-2011 / 18:40:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16242
    "Created: / 28-02-2011 / 17:28:10 / Marcel Hlopko <hlopik@gmail.com>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16243
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 16244
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16245
_sun_reflect_ConstantPool_getLongAt0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16246
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16247
    <javanative: 'sun/reflect/ConstantPool' name: 'getLongAt0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16248
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16249
        | cpool  index  long |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16250
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16251
    cpool := self reflection constantPoolFor:(nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16252
    index := nativeContext at:3.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16253
     "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16254
    long := cpool at:index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16255
    self assert:long isInteger description:'Not a float constant!!'.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16256
    ^ long
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16257
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16258
    "Modified: / 28-02-2011 / 17:40:02 / Marcel Hlopko <hlopik@gmail.com>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16259
    "Modified: / 28-02-2011 / 18:54:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16260
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16261
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16262
_sun_reflect_ConstantPool_getUTF8At0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16263
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16264
    <javanative: 'sun/reflect/ConstantPool' name: 'getUTF8At0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16265
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16266
    
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16267
    | cpool index string |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16268
    cpool := self reflection constantPoolFor: (nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16269
    index := nativeContext at: 3. 
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16270
    "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16271
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16272
    string := cpool at: index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16273
    self assert: string isString description: 'Not an UTF8 constant!!'.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16274
    ^Java as_String: string
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16275
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16276
    "Created: / 06-02-2011 / 12:56:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16277
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 16278
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16279
_sun_reflect_NativeConstructorAccessorImpl_newInstance0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16281
    <javanative: 'sun/reflect/NativeConstructorAccessorImpl' name: 'newInstance0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16282
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16283
    
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16284
    | ctor args method instance |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16285
    ctor := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16286
    args := aJavaContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16287
    method := self reflection methodForJavaConstructorObject: ctor.
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16288
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16289
    instance := method javaClass new.
1151
vranyj1
parents: 1150
diff changeset
 16290
    [
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16291
        self invoke: method receiver: instance arguments: args
1151
vranyj1
parents: 1150
diff changeset
 16292
    ] on: JavaUnhandledExceptionError do:[:ex|
vranyj1
parents: 1150
diff changeset
 16293
        self throwExceptionClassName: 'java.lang.InvocationTargetException'
vranyj1
parents: 1150
diff changeset
 16294
                         withMessage: 'exception when calling constructor: ', ex description
vranyj1
parents: 1150
diff changeset
 16295
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16296
    ^instance
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16297
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16298
    "Created: / 26-11-2010 / 11:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16299
    "Modified: / 09-02-2011 / 01:12:10 / Marcel Hlopko <hlopik@gmail.com>"
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16300
    "Modified: / 01-12-2011 / 23:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16301
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16303
_sun_reflect_NativeMethodAccessorImpl_invoke0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16304
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16305
    <javanative: 'sun/reflect/NativeMethodAccessorImpl' name: 'invoke0'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 16306
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16307
    private static native Object invoke0(Method m, Object obj, Object[] args);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16308
    "
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16309
    | m obj args method |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16310
    m := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16311
    obj := nativeContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16312
    args := nativeContext argAt: 3.
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 16313
    method := self reflection methodForJavaMethodObject: m.
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 16314
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16315
    ^ self invoke: method receiver: obj arguments: args
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16317
    "Created: / 06-02-2011 / 00:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16318
    "Modified: / 28-02-2011 / 16:57:31 / Marcel Hlopko <hlopik@gmail.com>"
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 16319
    "Modified: / 19-08-2011 / 15:06:00 / cg"
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 16320
    "Modified: / 01-12-2011 / 23:33:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16321
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16323
_sun_reflect_Reflection_getCallerClass: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16324
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16325
    <javanative: 'sun/reflect/Reflection' name: 'getCallerClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16327
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16328
    | framesToSkip framesSkipped frame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16329
    framesToSkip := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16330
    framesSkipped := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16331
    frame := aJavaContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16332
    [ framesSkipped == framesToSkip ] whileFalse:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16333
        [frame := frame sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16334
        framesSkipped := framesSkipped + 1].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16335
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16336
    ^JavaVM javaClassObjectForClass:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16337
        (frame receiver class theNonMetaclass)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16339
    "Created: / 25-10-2010 / 16:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16340
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16342
_sun_reflect_Reflection_getClassAccessFlags: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16343
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16344
    <javanative: 'sun/reflect/Reflection' name: 'getClassAccessFlags'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16346
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16348
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16349
    ^(class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16350
        1041"FIXME: make it symbolic"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16351
    ] ifFalse:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16352
        class accessFlags
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16353
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16355
    "Created: / 26-11-2010 / 10:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16356
    "Modified: / 28-01-2011 / 15:19:28 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16357
    "Modified: / 01-09-2011 / 09:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16358
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16359
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16360
!JavaVM class methodsFor:'native - sun.security.provider'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16361
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16362
_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16363
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16364
    <javanative: 'sun/security/provider/NativeSeedGenerator' name: 'nativeGenerateSeed([B)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16365
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16366
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16367
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16368
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16369
!JavaVM class methodsFor:'new monitors'!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16370
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16371
acquireMonitor: obj ofProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16372
    "Acquire* (stay in the queue and get it) monitor.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16373
     *leave is the word used by jvm spec"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16374
    
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16375
    | mon |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16376
    mon := JavaVM monitorFor: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16377
    self assert: mon notNil.
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16378
    MonitorTrace ifTrue: [
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16379
        Logger 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16380
            log: ('acquiring monitor %1 owned by thread: %2' 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16381
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16382
                    with: aProcess name)
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16383
            severity: #debug
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16384
            facility: #JVM.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16385
    ].
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16386
    mon acquire.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16387
    self assert:(mon isOwnedBy: aProcess).
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16388
    self acquiredMonitorsOf: aProcess add: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16389
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1124
91d9f1846a79 on the way to working monitors
hlopkmar
parents: 1123
diff changeset
 16390
    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16391
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16392
    "Created: / 17-11-2011 / 19:01:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16393
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16394
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16395
acquireMonitorAndNotifyAll: handle 
1196
553f16135fd3 join mauve test passes
hlopkmar
parents: 1195
diff changeset
 16396
    | mon |
553f16135fd3 join mauve test passes
hlopkmar
parents: 1195
diff changeset
 16397
    mon := self monitorFor: handle.
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16398
    mon enter.
1196
553f16135fd3 join mauve test passes
hlopkmar
parents: 1195
diff changeset
 16399
    self notifyAll: handle.
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16400
    mon exit.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16401
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16402
    "Created: / 29-11-2011 / 14:24:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16403
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16404
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16405
acquireMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16406
    "will try to acquire all entered monitors of process"
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16407
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16408
    | enteredMonitors |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16409
    (self hasEnteredMonitorsOfProcess: aProcess) ifTrue: [
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16410
        enteredMonitors := self copyEnteredMonitorsOfProcessAt: aProcess.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16411
        self assert: enteredMonitors notNil.
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16412
        enteredMonitors do: [:each | self acquireMonitor: each ofProcess: aProcess. ].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16413
    ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16414
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16415
    "Created: / 17-11-2011 / 17:16:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16416
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16417
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16418
acquiredMonitorsOf: aProcess add: anyObject 
1125
hlopkmar
parents: 1124
diff changeset
 16419
   
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16420
    ^ (self acquiredMonitorsOfProcess: aProcess) add: anyObject.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16421
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16422
    "Modified: / 08-01-1999 / 14:02:15 / cg"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16423
    "Created: / 17-11-2011 / 18:29:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16424
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16425
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16426
acquiredMonitorsOf: aProcess remove: anyObject 
1124
91d9f1846a79 on the way to working monitors
hlopkmar
parents: 1123
diff changeset
 16427
    self 
91d9f1846a79 on the way to working monitors
hlopkmar
parents: 1123
diff changeset
 16428
        assert: ((self acquiredMonitorsOfProcess: aProcess) includes: anyObject).
1125
hlopkmar
parents: 1124
diff changeset
 16429
        self 
hlopkmar
parents: 1124
diff changeset
 16430
                assert: ((self acquiredMonitorsOfProcess: aProcess) last == anyObject).
hlopkmar
parents: 1124
diff changeset
 16431
    (self acquiredMonitorsOfProcess: aProcess) removeLast.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16432
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16433
    "Modified: / 08-01-1999 / 14:02:15 / cg"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16434
    "Created: / 17-11-2011 / 18:40:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16435
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16436
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16437
acquiredMonitorsOfProcess: aProcess 
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16438
    ^ AcquiredMonitorsPerProcess at: aProcess
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16439
        ifAbsent: [
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16440
            | monitors |
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16441
            monitors := OrderedCollection new.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16442
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16443
            monitors
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16444
        ] 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16445
            .
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16446
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16447
    "Created: / 17-11-2011 / 18:29:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16448
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16449
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16450
acquiredMonitorsOfProcessAt: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16451
    "does not create empty collection like enteredMonitorsOfProcess"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16452
    
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16453
    ^ AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16454
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16455
    "Created: / 08-01-1999 / 14:02:02 / cg"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16456
    "Created: / 17-11-2011 / 17:03:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16457
!
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16458
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16459
copyAcquiredMonitorsOfProcess: aProcess 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16460
    ^ (AcquiredMonitorsPerProcess at: aProcess
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16461
        ifAbsent: [
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16462
            | monitors |
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16463
            monitors := OrderedCollection new.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16464
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16465
            monitors
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16466
        ]) 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16467
            copy.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16468
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16469
    "Created: / 17-11-2011 / 19:23:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16470
!
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16471
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16472
copyAcquiredMonitorsOfProcessAt: aProcess 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16473
    "does not create empty collection like enteredMonitorsOfProcess"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16474
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16475
    ^ (AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16476
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16477
    "Created: / 08-01-1999 / 14:02:02 / cg"
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16478
    "Created: / 17-11-2011 / 19:23:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16479
!
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16480
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16481
copyEnteredMonitorsOfProcess: aProcess 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16482
    ^ (EnteredMonitorsPerProcess at: aProcess
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16483
        ifAbsent: [
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16484
            | monitors |
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16485
            monitors := OrderedCollection new.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16486
            EnteredMonitorsPerProcess at: aProcess put: monitors.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16487
            monitors
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16488
        ]) 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16489
            copy.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16490
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16491
    "Created: / 08-01-1999 / 14:02:02 / cg"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16492
    "Created: / 17-11-2011 / 19:22:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16493
!
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16494
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16495
copyEnteredMonitorsOfProcessAt: aProcess 
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16496
    "does not create empty collection like enteredMonitorsOfProcess"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16497
    
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16498
    ^ (EnteredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16499
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16500
    "Created: / 08-01-1999 / 14:02:02 / cg"
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16501
    "Created: / 17-11-2011 / 19:22:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16502
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16503
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16504
countAcquiredMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16505
    | acquiredMonitors |
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16506
    acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16507
    ^ acquiredMonitors isNil ifTrue: [ 0 ] ifFalse: [ acquiredMonitors size ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16508
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16509
    "Created: / 17-11-2011 / 18:23:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16510
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16511
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16512
countEnteredMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16513
    | enteredMonitors |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16514
    enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16515
    ^ enteredMonitors isNil ifTrue: [ 0 ] ifFalse: [ enteredMonitors size ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16516
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16517
    "Created: / 17-11-2011 / 17:14:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16518
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16519
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16520
enterMonitor: obj ofProcess: aProcess 
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16521
    "registers itself as one of processes wanting monitor and then tries to acquire it."
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16522
    
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16523
    | mon |
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16524
    self enteredMonitorsOf: aProcess add: obj.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16525
    mon := JavaVM monitorFor: obj.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16526
    self assert: mon notNil.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16527
    MonitorTrace ifTrue: [
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16528
        Logger 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16529
            log: ('entering monitor %1 owned by thread: %2' 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16530
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16531
                    with: aProcess name)
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16532
            severity: #debug
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16533
            facility: #JVM.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16534
    ].
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16535
    mon enter.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16536
    self assert: (mon isOwnedBy: aProcess).
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16537
    self acquiredMonitorsOf: aProcess add: obj.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16538
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16539
        self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16540
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16541
    "Created: / 17-11-2011 / 19:03:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16542
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16543
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16544
enteredMonitorsOf: aProcess add: anyObject 
1125
hlopkmar
parents: 1124
diff changeset
 16545
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16546
    ^ (self enteredMonitorsOfProcess: aProcess) add: anyObject.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16547
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16548
    "Modified: / 08-01-1999 / 14:02:15 / cg"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16549
    "Created: / 17-11-2011 / 16:25:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16550
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16551
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16552
enteredMonitorsOf: aProcess remove: anyObject 
1124
91d9f1846a79 on the way to working monitors
hlopkmar
parents: 1123
diff changeset
 16553
    self 
91d9f1846a79 on the way to working monitors
hlopkmar
parents: 1123
diff changeset
 16554
        assert: ((self enteredMonitorsOfProcess: aProcess) includes: anyObject).
1125
hlopkmar
parents: 1124
diff changeset
 16555
         self 
hlopkmar
parents: 1124
diff changeset
 16556
                 assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
hlopkmar
parents: 1124
diff changeset
 16557
    (self enteredMonitorsOfProcess: aProcess) removeLast.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16558
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16559
    "Modified: / 08-01-1999 / 14:02:15 / cg"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16560
    "Created: / 17-11-2011 / 18:40:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16561
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16562
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16563
enteredMonitorsOfProcess: aProcess 
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16564
    ^ EnteredMonitorsPerProcess at: aProcess
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16565
        ifAbsent: [
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16566
            | monitors |
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16567
            monitors := OrderedCollection new.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16568
            EnteredMonitorsPerProcess at: aProcess put: monitors.
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16569
            monitors
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16570
        ]
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16571
            .
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16572
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16573
    "Created: / 08-01-1999 / 14:02:02 / cg"
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16574
    "Modified: / 17-11-2011 / 19:22:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16575
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16576
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16577
enteredMonitorsOfProcessAt: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16578
    "does not create empty collection like enteredMonitorsOfProcess"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16579
    
1123
c1b099703294 stupid me
hlopkmar
parents: 1122
diff changeset
 16580
    ^ EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16581
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16582
    "Created: / 08-01-1999 / 14:02:02 / cg"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16583
    "Created: / 16-11-2011 / 15:37:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16584
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16585
1220
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16586
exitOwnedMonitorsOfProcess
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16587
   |thisProcess monitors|
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16588
   thisProcess := Processor activeProcess.
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16589
   monitors := self acquiredMonitorsOfProcess: thisProcess.
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16590
   monitors do: [:each | self assert: (each isOwnedBy:thisProcess).
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16591
    each exit.
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16592
    ]
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16593
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16594
    "Created: / 05-12-2011 / 21:15:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16595
!
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16596
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16597
has: aProcess enteredMonitorFor: anyObject 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16598
    ^ (self enteredMonitorsOfProcess: aProcess) includes: anyObject.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16599
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16600
    "Created: / 17-11-2011 / 16:28:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16601
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16602
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16603
hasAcquiredMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16604
   | acquiredMonitors |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16605
   acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16606
   ^ acquiredMonitors isNil 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16607
   ifTrue: [ false ]
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16608
           ifFalse: [ acquiredMonitors size > 0 ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16609
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16610
    "Created: / 17-11-2011 / 17:07:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16611
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16612
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16613
hasEnteredMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16614
   | enteredMonitors |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16615
   enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16616
   ^ enteredMonitors isNil ifTrue: [ false ] ifFalse: [ enteredMonitors size > 0].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16617
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16618
    "Created: / 17-11-2011 / 17:09:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16619
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16620
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16621
leaveMonitor: obj ofProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16622
    "Leave* (release and never come back, exit) monitor owned by given project.     
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16623
     *leave is the word used by jvm spec"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16624
    
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16625
    | mon |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16626
    mon := JavaVM monitorFor: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16627
    self assert: mon notNil.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
 16628
    "/self assert: (mon isOwnedBy: aProcess).
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16629
    MonitorTrace ifTrue: [Logger 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16630
        log: ('leaving monitor %1 owned by thread: %2' 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16631
                bindWith: (self monitorFriendlyPrintStringOf: obj)
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16632
                with: aProcess name)
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16633
        severity: #debug
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16634
        facility: #JVM.].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16635
    mon exit.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16636
    self acquiredMonitorsOf: aProcess remove: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16637
    self enteredMonitorsOf: aProcess remove: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16638
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16639
    "Created: / 17-11-2011 / 18:46:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16640
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16641
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16642
leaveMonitorsOfProcess: aProcess 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16643
    "Leave* (release and never come back, exit) all monitors owned by given project.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16644
     Called when cleaning up after process death or when handling smalltalk (non-java) exceptions
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16645
     (such an exception in native method)
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16646
     *leave is the word used by jvm spec"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16647
    
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16648
    | monitors |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16649
    monitors := EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16650
    monitors notNil ifTrue: [
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16651
        monitors do: [
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16652
            :obj | 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16653
            | mon |
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16654
            mon := JavaVM monitorFor: obj.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16655
            mon notNil ifTrue: [
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16656
                (mon isOwnedBy: aProcess) ifTrue: [
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16657
                    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16658
                        log: ('leaving monitor owned by dying thread: ' , aProcess name)
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16659
                        severity: #info
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16660
                        facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16661
                    self breakPoint: #jv.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16662
                    mon exit
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16663
                ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16664
            ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16665
        ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16666
        EnteredMonitorsPerProcess removeKey: aProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16667
    ].
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16668
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16669
    "Created: / 17-11-2011 / 16:51:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16670
!
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16671
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16672
monitorEnter: someObject in: aJavaContext 
1125
hlopkmar
parents: 1124
diff changeset
 16673
    | thisProcess |
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 16674
    self assert: (aJavaContext isJavaContext).
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16675
    someObject isNil ifTrue: [
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16676
        self throwNullPointerException.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 16677
        self breakPoint: #mh.
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16678
        ^ self
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16679
    ].
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16680
    thisProcess := Processor activeProcess.
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16681
    MonitorTrace ifTrue: [
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16682
        Logger 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16683
            log: ('MONENTER: entering monitor for %1 in %2' 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16684
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16685
                    with: thisProcess name)
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16686
            severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16687
            facility: #JVM.
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16688
    ].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16689
    self enterMonitor: someObject ofProcess: thisProcess.
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16690
    aJavaContext addMonitor: someObject.
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16691
    MonitorTrace ifTrue: [Logger 
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16692
        log: 'MONENTER: monitor entered in ' , thisProcess name
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16693
        severity: #debug
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16694
        facility: #JVM.].
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16695
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16696
    "Created: / 08-11-2011 / 15:15:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16697
!
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16698
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16699
monitorExit: someObject in: aJavaContext 
1125
hlopkmar
parents: 1124
diff changeset
 16700
    | thisProcess |
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 16701
    self assert: (aJavaContext isJavaContext).
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16702
    someObject isNil ifTrue: [
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16703
        self throwNullPointerException.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 16704
        self breakPoint: #mh.
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16705
        ^ self
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16706
    ].
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 16707
    thisProcess := Processor activeProcess.
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16708
    MonitorTrace ifTrue: [
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16709
        Logger 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16710
            log: ('MONEXIT: leaving monitor for %1 in %2' 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16711
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16712
                    with: thisProcess name) , thisProcess name
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16713
            severity: #info
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16714
            facility: #JVM.
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16715
    ].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16716
    self leaveMonitor: someObject ofProcess: thisProcess.
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 16717
    aJavaContext removeMonitor: someObject.
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16718
    MonitorTrace ifTrue: [Logger 
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16719
        log: 'MONEXIT: monitor left in ' , thisProcess name
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 16720
        severity: #info
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16721
        facility: #JVM.].
1094
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16722
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16723
    "Created: / 08-11-2011 / 15:17:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16724
!
68b154263d74 fixes in monitors, still not working
hlopkmar
parents: 1093
diff changeset
 16725
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16726
monitorExit: someObject in: aJavaContext ifOwnedBy: aProcess 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16727
    | monitor |
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16728
    monitor := self monitorFor: someObject.
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16729
    (monitor isOwnedBy: aProcess) ifTrue: [
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16730
        self monitorExit: someObject in: aJavaContext
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16731
    ] ifFalse: [
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16732
        MonitorTrace ifTrue: [
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16733
            Logger 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16734
                log: ('%1 trying to exit monitor for %2, but it does not own it. Ignoring' 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16735
                        bindWith: aProcess name
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16736
                        with: (self monitorFriendlyPrintStringOf: someObject))
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16737
                severity: #debug
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16738
                facility: #JVM
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16739
        ]
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 16740
    ].
1127
d48072ada374 next time I will try to keep my excitement low and will think more :) second try
hlopkmar
parents: 1126
diff changeset
 16741
d48072ada374 next time I will try to keep my excitement low and will think more :) second try
hlopkmar
parents: 1126
diff changeset
 16742
    "Created: / 17-11-2011 / 21:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d48072ada374 next time I will try to keep my excitement low and will think more :) second try
hlopkmar
parents: 1126
diff changeset
 16743
!
d48072ada374 next time I will try to keep my excitement low and will think more :) second try
hlopkmar
parents: 1126
diff changeset
 16744
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16745
monitorFor: someObject 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16746
    | mon |
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16747
    LockTableAccess 
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16748
        critical: [
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16749
            mon := LockTable at: someObject ifAbsent: nil.
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
 16750
            mon isNil ifTrue: [ LockTable at: someObject put: (mon := JavaMonitor for: someObject) ]
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16751
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16752
    ^ mon
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16753
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
 16754
    "Created: / 02-01-1998 / 19:01:52 / cg"
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
 16755
    "Modified: / 30-11-2011 / 20:40:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16756
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16757
1125
hlopkmar
parents: 1124
diff changeset
 16758
monitorFriendlyPrintStringOf: someObject 
hlopkmar
parents: 1124
diff changeset
 16759
    | objString |
hlopkmar
parents: 1124
diff changeset
 16760
    someObject isJavaClass ifTrue: [ objString := someObject name ] ifFalse: [
hlopkmar
parents: 1124
diff changeset
 16761
        objString := someObject class name , '@' 
hlopkmar
parents: 1124
diff changeset
 16762
                    , someObject identityHash printString.
hlopkmar
parents: 1124
diff changeset
 16763
    ].
hlopkmar
parents: 1124
diff changeset
 16764
    ^ objString
hlopkmar
parents: 1124
diff changeset
 16765
!
hlopkmar
parents: 1124
diff changeset
 16766
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
 16767
notify: handle 
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16768
    | mon  thisProcess |
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16769
    thisProcess := Processor activeProcess.
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
 16770
    mon := self monitorFor: handle.
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16771
    (mon isOwnedBy: thisProcess) ifFalse: [
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16772
        self 
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16773
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16774
    ].
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
 16775
    mon notify.
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
 16776
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16777
    "Created: / 22-11-2011 / 13:26:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16778
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16779
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16780
notifyAll: handle 
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16781
    | mon  thisProcess |
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16782
    thisProcess := Processor activeProcess.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16783
    mon := self monitorFor: handle.
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16784
    (mon isOwnedBy: thisProcess) ifFalse: [
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16785
        self 
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16786
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
 16787
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16788
    mon notifyAll.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16789
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16790
    "Created: / 22-11-2011 / 13:26:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16791
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16792
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16793
releaseMonitor: obj ofProcess: aProcess 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16794
    "Release* (let go and wait for it again) monitor owned by given project.     
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16795
     *word used by jvm spec"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16796
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16797
    | mon |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16798
    mon := JavaVM monitorFor: obj.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16799
    self assert: mon notNil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16800
    self assert: (mon isOwnedBy: aProcess).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16801
    MonitorTrace ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16802
        Logger 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16803
            log: ('releasing monitor %1 owned by thread: %2' 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16804
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16805
                    with: aProcess name)
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16806
            severity: #debug
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16807
            facility: #JVM.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16808
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16809
    mon release.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16810
    self acquiredMonitorsOf: aProcess remove: obj.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16811
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16812
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16813
    "Created: / 17-11-2011 / 18:51:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16814
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16815
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16816
releaseMonitorsOfProcess
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16817
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16818
    self releaseMonitorsOfProcess: Processor activeProcess
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16819
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16820
    "Created: / 04-11-2011 / 22:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16821
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16822
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16823
releaseMonitorsOfProcess: aProcess 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16824
    "Releases* all monitors owned by given project.
1220
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16825
     Monitor can be acquired again, (aProcess going into WAIT)
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16826
     *word used by jvm spec"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16827
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16828
    | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16829
    monitors := self copyAcquiredMonitorsOfProcessAt: aProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16830
    monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16831
        monitors do: [:obj | self releaseMonitor: obj ofProcess: aProcess. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16832
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16833
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16834
    "Created: / 04-11-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16835
    "Modified: / 17-11-2011 / 21:29:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1220
d96b97c1b4a5 many mauve tests will be happier after this fix :) corrected releasing monitors after test
hlopkmar
parents: 1217
diff changeset
 16836
    "Modified (comment): / 05-12-2011 / 21:13:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16837
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16838
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16839
sleepForTimeout: tmo state: state 
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16840
    "wait"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16841
    
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16842
    | thisProcess |
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16843
    thisProcess := Processor activeProcess.
1192
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16844
    thisProcess isInterrupted ifTrue: [
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16845
        thisProcess clearInterrupted.
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16846
        self 
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16847
                    throwInterruptedException: 'process was interrupted before/during sleep !!?'
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16848
    ].
525a3aeb0dcf sleep mauve test passes
hlopkmar
parents: 1190
diff changeset
 16849
    thisProcess state: state.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
 16850
    (Delay forMilliseconds: tmo) waitWithState: state.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16851
    thisProcess isInterrupted ifTrue: [
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16852
        thisProcess clearInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16853
        self 
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16854
            throwInterruptedException: 'process was interrupted before/during sleep !!?'
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16855
    ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16856
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16857
    "Created: / 30-12-1998 / 19:19:35 / cg"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16858
    "Modified: / 08-01-1999 / 17:29:24 / cg"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16859
    "Created: / 30-11-2011 / 11:04:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16860
!
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16861
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16862
unwindHandlerForJavaContext: aJavaContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16863
    "given a context which has been marked for unwind,
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16864
     retrieve the handler block. This method is called when ST
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16865
     exception raises and stack is unwinding. JavaClass instance
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16866
     has an opportunity to clean up monitors"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16867
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16868
    ^ [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16869
    | thisProcess |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16870
    MonitorTrace ifTrue: [Logger 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16871
        log: ('java context is about to unwind, force-exit entered monitors')
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16872
        severity: #info
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16873
        facility: #JVM.].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16874
    thisProcess := Processor activeProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16875
    aJavaContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16876
        acquiredMonitorsDo: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16877
            :each | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16878
            JavaVM 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16879
                monitorExit: each
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16880
                in: aJavaContext
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16881
                ifOwnedBy: thisProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16882
        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16883
].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16884
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16885
    "Created: / 08-11-2011 / 12:30:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16886
    "Modified: / 09-11-2011 / 22:25:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16887
    "Modified: / 17-11-2011 / 21:33:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16888
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16889
1179
26fa6829e4d7 small changes is monitors + more logging
hlopkmar
parents: 1177
diff changeset
 16890
waitOn: handle forTimeout: tmo state: state 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16891
    "wait"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16892
    
1179
26fa6829e4d7 small changes is monitors + more logging
hlopkmar
parents: 1177
diff changeset
 16893
    | wasBlocked  thisProcess  mon |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16894
    thisProcess := Processor activeProcess.
1193
6bf32b0f6fad fixing wait the same way as fixed sleep (interrupts)
hlopkmar
parents: 1192
diff changeset
 16895
    thisProcess isInterrupted ifTrue: [
6bf32b0f6fad fixing wait the same way as fixed sleep (interrupts)
hlopkmar
parents: 1192
diff changeset
 16896
    thisProcess clearInterrupted.
6bf32b0f6fad fixing wait the same way as fixed sleep (interrupts)
hlopkmar
parents: 1192
diff changeset
 16897
    self 
6bf32b0f6fad fixing wait the same way as fixed sleep (interrupts)
hlopkmar
parents: 1192
diff changeset
 16898
    throwInterruptedException: 'process was interrupted before/during wait !!?'
6bf32b0f6fad fixing wait the same way as fixed sleep (interrupts)
hlopkmar
parents: 1192
diff changeset
 16899
        ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16900
    wasBlocked := OperatingSystem blockInterrupts.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16901
    mon := self monitorFor: handle.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16902
    (mon isOwnedBy: thisProcess) ifFalse: [
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16903
        self 
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16904
            throwIllegalMonitorStateException: 'monitor was not owned on wait by ' 
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16905
                    , thisProcess printString
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16906
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16907
    state notNil ifTrue: [ thisProcess state: state ].
1179
26fa6829e4d7 small changes is monitors + more logging
hlopkmar
parents: 1177
diff changeset
 16908
    mon waitForMilliseconds: tmo.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16909
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16910
    thisProcess isInterrupted ifTrue: [
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16911
        thisProcess clearInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16912
        self 
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16913
            throwInterruptedException: 'process was interrupted before/during wait !!?'
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
 16914
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16915
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16916
    "Created: / 30-12-1998 / 19:19:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16917
    "Modified: / 08-01-1999 / 17:29:24 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16918
    "Created: / 22-11-2011 / 13:20:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16919
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16920
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16921
!JavaVM class methodsFor:'queries'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16922
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16923
booted
1209
vranyj1
parents: 1205
diff changeset
 16924
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16925
    | jVM |
1209
vranyj1
parents: 1205
diff changeset
 16926
vranyj1
parents: 1205
diff changeset
 16927
    "/Slightly faster variant of the code below
vranyj1
parents: 1205
diff changeset
 16928
    ^SystemClassLoader notNil and:[
vranyj1
parents: 1205
diff changeset
 16929
        jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 16930
        jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ]
vranyj1
parents: 1205
diff changeset
 16931
    ].
vranyj1
parents: 1205
diff changeset
 16932
vranyj1
parents: 1205
diff changeset
 16933
"/    jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 16934
"/    ^ jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ] and: [self systemClassLoader notNil].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16935
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16936
    "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16937
     JavaVM booted"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16938
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16939
    "Created: / 08-08-2011 / 10:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16940
    "Modified: / 02-11-2011 / 22:08:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1209
vranyj1
parents: 1205
diff changeset
 16941
    "Modified: / 04-12-2011 / 10:32:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16942
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16943
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16944
!JavaVM class methodsFor:'semaphores & monitors'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 16945
1142
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16946
releaseAndSignalForAllSemaphoreFor: someObject 
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16947
    | sema |
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16948
    WaitTableAccess 
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16949
        critical: [
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16950
            sema := WaitTable at: someObject ifAbsent: nil.
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16951
        ].
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16952
    sema notNil ifTrue: [ sema signalForAll ]
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16953
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16954
    "Created: / 02-01-1998 / 18:21:51 / cg"
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16955
    "Modified: / 03-02-1998 / 16:11:58 / cg"
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 16956
    "Modified (comment): / 20-11-2011 / 12:33:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16957
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16959
releaseAndSignalSemaphoreFor:someObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16960
    |sema|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16962
    WaitTableAccess critical:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16963
	sema := WaitTable at:someObject ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16964
"/        sema notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16965
"/            WaitTable removeKey:someObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16966
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16967
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16969
    sema notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16970
	sema signal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16971
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16973
    "Created: / 2.1.1998 / 18:20:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16974
    "Modified: / 3.2.1998 / 16:11:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16975
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16977
releaseSemaphoreFor:someObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16978
    WaitTableAccess critical:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16979
	WaitTable removeKey:someObject ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16980
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16982
    "Created: / 2.1.1998 / 18:17:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16983
    "Modified: / 2.1.1998 / 21:52:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16984
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16986
semaphoreFor:someObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16987
    |sema|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16989
    WaitTableAccess critical:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16990
	sema := WaitTable at:someObject ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16991
	sema isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16992
	    WaitTable at:someObject put:(sema := Semaphore new)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16993
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16994
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16995
    ^ sema
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16996
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16997
    "Created: / 2.1.1998 / 18:15:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16998
    "Modified: / 2.1.1998 / 18:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16999
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17000
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17001
waitFor: sema state: pState timeOut: tmo 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17002
    "wait"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17003
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17004
    | wasBlocked  thisProcess  releasedCount  acquiredCount |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17005
    thisProcess := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17006
    wasBlocked := OperatingSystem blockInterrupts.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17007
    releasedCount := self countAcquiredMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17008
    (self hasAcquiredMonitorsOfProcess: thisProcess) ifTrue: [
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17009
        MonitorTrace ifTrue: [
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17010
            Logger 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17011
                log: thisProcess name , ' going into WAIT - releasing ' 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17012
                        , (self countAcquiredMonitorsOfProcess: thisProcess) printString 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17013
                            , ' monitors'
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17014
                severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17015
                facility: #JVM.
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17016
        ].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17017
        self releaseMonitorsOfProcess: thisProcess.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17018
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17019
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17020
    pState notNil ifTrue: [ thisProcess state: pState ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17021
    sema isNil ifTrue: [ Delay waitForMilliseconds: tmo ] ifFalse: [
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17022
        (tmo isNil or: [ tmo = 0 ]) ifTrue: [ sema wait. ] ifFalse: [
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17023
            sema waitWithTimeout: tmo / 1000.
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17024
        ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17025
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17026
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17027
    "/ re-enter monitors.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17028
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17029
    (self hasEnteredMonitorsOfProcess: thisProcess) ifTrue: [
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17030
        wasBlocked := OperatingSystem blockInterrupts.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17031
        Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17032
            log: thisProcess name , ' has been notified - trying to acquire ' 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17033
                    , (self countEnteredMonitorsOfProcess: thisProcess) printString 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17034
                        , ' monitors'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17035
            severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17036
            facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17037
        self acquireMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17038
        acquiredCount := self countAcquiredMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17039
        self assert: acquiredCount = releasedCount.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17040
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17041
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17042
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17043
    "Created: / 30-12-1998 / 19:19:35 / cg"
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17044
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1142
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 17045
    "Modified: / 20-11-2011 / 12:36:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17046
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17047
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17048
!JavaVM class methodsFor:'vm support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17049
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17050
_ANEWARRAY2:classRef _:size 
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17051
    "vm helper method for new resolving - creates new array of class identified by classRef"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17052
    
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17053
    |javaClass|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17054
1151
vranyj1
parents: 1150
diff changeset
 17055
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17056
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17057
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17058
        ^nil
vranyj1
parents: 1150
diff changeset
 17059
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17060
    classRef ifNil:[ self halt:'cant create array from nil ref' ].
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17061
    javaClass := classRef resolve.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17062
    javaClass ifNil:[ self halt:'cant create array from nil javaClass' ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17063
    self assert:javaClass javaArrayClass isJavaArrayClass. 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17064
    ^ javaClass javaArrayClass new:size
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17065
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17066
    "Created: / 18-05-2011 / 21:04:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17067
    "Modified: / 22-11-2011 / 09:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17068
!
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17069
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17070
_ANEWARRAY:classRef _:size 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17071
    |ref|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17072
1151
vranyj1
parents: 1150
diff changeset
 17073
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17074
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17075
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17076
        ^nil
vranyj1
parents: 1150
diff changeset
 17077
    ].
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17078
    ref := classRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17079
    ref isUnresolved ifTrue:[ ref := ref javaClass ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17080
    self assert:ref javaArrayClass isJavaArrayClass.
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17081
    ^ ref javaArrayClass new:size
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17083
    "Created: / 17-12-2010 / 14:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17084
    "Modified: / 22-11-2011 / 09:46:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17085
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17087
_ARRAYLENGTH:arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17088
    arr isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17089
        "/self halt:'should not happen'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17090
        self throwNullPointerException.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17091
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17092
    ^ arr size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17093
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17094
    "Created: / 08-01-1999 / 14:38:27 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17095
    "Modified: / 31-05-2011 / 10:09:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17096
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17097
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17098
_ATHROW:aJavaException
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17099
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17100
    <resource: #skipInDebuggersWalkBack>
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17101
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17102
    aJavaException isNil ifTrue:[
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17103
        self halt:'cannot happen'
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17104
    ].
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17105
    self throwException:aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17107
    "Created: / 08-01-1999 / 14:15:36 / cg"
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17108
    "Modified: / 08-11-2011 / 16:32:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17109
    "Modified: / 08-11-2011 / 22:16:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17111
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17112
_CHECKCAST2: object _: aJavaClassRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17113
    "Trampouline for unhandled cases ..."
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17114
    
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17115
    | class |
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17116
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17117
    aJavaClassRef isJavaRef ifTrue: [ class := aJavaClassRef resolve ] ifFalse: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17118
        self halt: 'I expected classRefs only - maybe I was wrong'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17119
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17120
    (object isNil or: [ (self canCast: object class to: class) not ]) ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17121
        self breakPoint: #mh.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17122
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17123
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17124
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17125
        
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17126
    ^ true.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17127
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17128
    "Created: / 19-05-2011 / 10:12:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
 17129
    "Modified: / 13-08-2011 / 01:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17130
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17131
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17132
_CHECKCAST: object _: classOrClassRef 
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17133
    "Trampouline for unhandled cases ..."
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17134
    
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17135
    | class |
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17136
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17137
    self breakPoint: #mh.
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17138
    class := classOrClassRef javaClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17139
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17140
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17141
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17142
     If objectref is null, the checkcast instruction throws a ClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17143
    " "object isNil"
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17144
    (false or: [ (self canCast: object class to: class) not ]) ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17145
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17146
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17147
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17148
    ^ true
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17150
    "Created: / 08-01-1999 / 14:53:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17151
    "Modified: / 09-01-1999 / 00:45:21 / cg"
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17152
    "Modified: / 25-04-2011 / 20:26:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17153
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17155
_D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17156
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17158
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17159
    v > 16r7FFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17160
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17161
	v := 16r7FFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17162
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17163
	v < 16r80000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17164
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17165
	    v := 16r80000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17166
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17167
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17168
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17170
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17171
    "Created: / 8.1.1999 / 14:47:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17172
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17173
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17174
_D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17175
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17176
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17177
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17178
    v > 16r7FFFFFFFFFFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17179
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17180
	v := 16r7FFFFFFFFFFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17181
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17182
	v < 16r8000000000000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17183
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17184
	    v := 16r8000000000000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17185
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17186
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17187
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17189
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17190
    "Created: / 8.1.1999 / 14:46:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17191
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17193
_DADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17194
    ^ op1 asFloat + op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17196
    "Created: / 8.1.1999 / 15:11:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17197
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17199
_DDIV:op1 _:op2
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17200
    ^ op1 asFloat uncheckedDivide: op2 asFloat.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17201
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17202
    "Created: / 08-01-1999 / 15:09:10 / cg"
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17203
    "Modified: / 06-09-2011 / 19:31:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17204
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17206
_DMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17207
    ^ op1 asFloat * op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17209
    "Created: / 8.1.1999 / 14:49:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17210
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17212
_DNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17213
    ^ op asFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17215
    "Created: / 8.1.1999 / 15:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17216
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17218
_DSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17219
    ^ op1 asFloat - op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17221
    "Created: / 8.1.1999 / 15:10:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17222
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17224
_F2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17225
    ^ self _D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17227
    "Created: / 8.1.1999 / 14:47:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17228
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17230
_F2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17231
    ^ self _D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17232
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17233
    "Created: / 8.1.1999 / 14:47:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17234
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17235
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17236
_FADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17237
    ^ op1 asShortFloat + op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17239
    "Created: / 8.1.1999 / 15:11:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17240
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17242
_FDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17243
    ^ op1 asShortFloat / op2 asShortFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17244
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17245
    "Created: / 8.1.1999 / 15:09:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17246
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17248
_FMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17249
    ^ op1 asShortFloat * op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17251
    "Created: / 8.1.1999 / 14:50:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17252
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17254
_FNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17255
    ^ op asShortFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17257
    "Created: / 8.1.1999 / 15:06:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17258
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17260
_FSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17261
    ^ op1 asShortFloat - op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17263
    "Created: / 8.1.1999 / 15:08:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17264
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17265
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17266
_INSTANCEOF2: object _: classRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17267
    |class|
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17268
    classRef isJavaRef ifFalse: [self halt: 'expected only classRefs - maybe I was wrong'].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17269
    class := classRef resolve.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17270
    object ifNil: [ ^ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17271
    ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17272
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17273
    "Created: / 19-05-2011 / 10:14:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17274
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17275
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17276
_INSTANCEOF:object _:class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17278
    object ifNil:[^0].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17280
    ^(self canCast: object class to: class)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17281
        ifTrue:[1]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17282
        ifFalse:[0]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17284
    "Created: / 08-01-1999 / 14:52:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17285
    "Modified: / 27-01-1999 / 20:56:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17286
    "Modified: / 25-02-2011 / 18:31:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17287
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17289
_L2D:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17290
    ^ op1 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17292
    "Created: / 8.1.1999 / 14:46:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17293
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17295
_L2F:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17296
    ^ op1 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17298
    "Created: / 8.1.1999 / 14:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17299
    "Modified: / 8.1.1999 / 14:50:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17300
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17302
_LADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17303
    |sum|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17305
    sum := (op1 + op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17306
    ^ sum
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17308
    "Created: / 8.1.1999 / 15:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17309
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17311
_LAND:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17312
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17314
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17315
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17316
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17317
    rslt := op1 bitAnd: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17318
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17320
    "Modified: / 7.1.1998 / 21:21:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17321
    "Created: / 8.1.1999 / 14:54:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17324
_LDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17325
    |quo|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17327
    quo := op1 quo: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17328
    ^ quo
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17330
    "Created: / 8.1.1999 / 15:04:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17331
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17333
_LMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17334
    |prod o1 o2 sign|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17335
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17336
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17337
    "/ ST's largeIntegers compute a correct result;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17338
    "/ but here, we want the overflow to flow into the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17339
    "/ sign bit ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17341
    sign := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17342
    (o1 := op1) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17343
	sign := -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17344
	o1 := o1 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17345
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17346
    (o2 := op2) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17347
	sign := sign negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17348
	o2 := o2 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17349
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17351
    prod := (o1 * o2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17352
    (prod bitAnd:16r8000000000000000) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17353
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17354
    sign == -1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17355
	prod := prod negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17356
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17357
    ^ prod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17359
    "Created: / 8.1.1999 / 15:10:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17360
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17362
_LNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17363
    ^ op asInteger negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17365
    "Created: / 8.1.1999 / 15:06:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17366
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17367
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17368
_LOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17369
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17371
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17372
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17373
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17374
    rslt := op1 bitOr: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17375
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17377
    "Created: / 8.1.1999 / 15:05:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17380
_LREM:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17381
    |rem|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17383
    rem := op1 rem: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17384
    ^ rem
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17386
    "Modified: / 7.1.1998 / 00:23:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17387
    "Created: / 8.1.1999 / 15:04:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17388
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17390
_LSHL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17391
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17393
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17394
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17395
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17396
    rslt := (op1 bitShift:op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17397
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17399
    "Created: / 8.1.1999 / 14:51:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17400
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17402
_LSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17403
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17405
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17406
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17407
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17408
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17409
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17410
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17411
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17412
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17413
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17415
    "Created: / 8.1.1999 / 14:51:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17416
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17417
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17418
_LSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17419
    |diff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17421
    diff := (op1 - op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17422
    ^ diff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17424
    "Created: / 8.1.1999 / 15:10:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17425
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17427
_LUSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17428
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17430
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17431
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17432
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17434
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17435
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17436
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17437
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17438
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17439
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17440
    "Modified: / 7.1.1998 / 21:22:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17441
    "Created: / 8.1.1999 / 14:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17442
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17444
_LXOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17445
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17446
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17447
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17448
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17449
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17450
    rslt := op1 bitXor: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17451
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17453
    "Created: / 8.1.1999 / 15:12:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17454
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17455
1093
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17456
_MONITORENTER: someObject 
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17457
    self assert: (thisContext sender isJavaContext).
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17458
    self assert: (thisContext sender isMarkedForUnwind).
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17459
    self monitorEnter: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17460
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17461
    "Created: / 08-01-1999 / 14:23:10 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17462
    "Modified: / 08-01-1999 / 18:47:26 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17463
    "Modified: / 10-08-2011 / 20:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17464
    "Modified: / 09-11-2011 / 19:23:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1093
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17465
!
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17466
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17467
_MONITOREXIT: someObject 
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17468
self assert: (thisContext sender isJavaContext).
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17469
    self monitorExit: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17470
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17471
    "Created: / 08-01-1999 / 14:23:19 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17472
    "Modified: / 08-01-1999 / 18:47:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17473
    "Modified: / 10-08-2011 / 20:20:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17474
    "Modified: / 09-11-2011 / 12:42:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17475
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17476
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17477
_MULTINEW2: classRef _: dim1 
927
vranyj1
parents: 926
diff changeset
 17478
vranyj1
parents: 926
diff changeset
 17479
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17480
1151
vranyj1
parents: 1150
diff changeset
 17481
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17482
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17483
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17484
        ^nil
vranyj1
parents: 1150
diff changeset
 17485
    ].
927
vranyj1
parents: 926
diff changeset
 17486
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17487
    arrCls := classRef resolve.
vranyj1
parents: 926
diff changeset
 17488
    arr := arrCls new: dim1.
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17489
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17490
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17491
    "Created: / 19-05-2011 / 10:46:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17492
    "Modified: / 22-11-2011 / 09:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 17493
!
vranyj1
parents: 926
diff changeset
 17494
vranyj1
parents: 926
diff changeset
 17495
_MULTINEW2: classRef _: dim1 _: dim2
vranyj1
parents: 926
diff changeset
 17496
vranyj1
parents: 926
diff changeset
 17497
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17498
1151
vranyj1
parents: 1150
diff changeset
 17499
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17500
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17501
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17502
        ^nil
vranyj1
parents: 1150
diff changeset
 17503
    ].
vranyj1
parents: 1150
diff changeset
 17504
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17505
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17506
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17507
        ^nil
vranyj1
parents: 1150
diff changeset
 17508
    ].
vranyj1
parents: 1150
diff changeset
 17509
vranyj1
parents: 1150
diff changeset
 17510
927
vranyj1
parents: 926
diff changeset
 17511
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17512
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17513
    arr := arrCls new: dim2.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17514
    1 to: dim2 do:[:i|
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17515
        arr at: i put: (arrCls javaComponentClass new: dim1)
927
vranyj1
parents: 926
diff changeset
 17516
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17517
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17518
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17519
    "Created: / 19-05-2011 / 10:47:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17520
    "Modified: / 22-11-2011 / 09:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 17521
!
vranyj1
parents: 926
diff changeset
 17522
vranyj1
parents: 926
diff changeset
 17523
_MULTINEW2: classRef _: dim1 _: dim2 _: dim3
vranyj1
parents: 926
diff changeset
 17524
vranyj1
parents: 926
diff changeset
 17525
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17526
1151
vranyj1
parents: 1150
diff changeset
 17527
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17528
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17529
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17530
        ^nil
vranyj1
parents: 1150
diff changeset
 17531
    ].
vranyj1
parents: 1150
diff changeset
 17532
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17533
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17534
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17535
        ^nil
vranyj1
parents: 1150
diff changeset
 17536
    ].
vranyj1
parents: 1150
diff changeset
 17537
    dim3 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17538
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17539
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17540
        ^nil
vranyj1
parents: 1150
diff changeset
 17541
    ].
vranyj1
parents: 1150
diff changeset
 17542
vranyj1
parents: 1150
diff changeset
 17543
927
vranyj1
parents: 926
diff changeset
 17544
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17545
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17546
    arr := arrCls new: dim3.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17547
    1 to: dim3 do:[:i|
927
vranyj1
parents: 926
diff changeset
 17548
        | arr2 |
vranyj1
parents: 926
diff changeset
 17549
        arr2 := arrCls javaComponentClass new: dim2.
vranyj1
parents: 926
diff changeset
 17550
        1 to: dim2 do:[:j|
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17551
            arr2 at: j put: (arrCls javaComponentClass javaComponentClass new: dim1).
927
vranyj1
parents: 926
diff changeset
 17552
        ].
vranyj1
parents: 926
diff changeset
 17553
        arr at: i put: arr2.
vranyj1
parents: 926
diff changeset
 17554
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17555
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17556
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17557
    "Created: / 19-05-2011 / 10:47:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17558
    "Modified: / 22-11-2011 / 09:45:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17559
!
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17560
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17561
_MULTINEW:typeRef _:dim1 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17563
    |arr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17565
    arr := typeRef new:dim1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17567
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17568
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17569
    "Created: / 08-01-1999 / 14:15:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17570
    "Modified: / 08-01-1999 / 18:03:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17571
    "Modified: / 16-03-2011 / 16:20:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17572
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17573
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17574
_MULTINEW: typeRef _: dim1 _: dim2 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17575
    | arr |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17576
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17577
    arr := typeRef new: dim2.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17578
    1 to: dim2
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17579
        do: [:idx | arr at: idx put: (self _MULTINEW: typeRef javaComponentClass _: dim1) ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17580
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17581
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17582
    "Created: / 08-01-1999 / 14:15:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17583
    "Modified: / 08-01-1999 / 17:58:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17584
    "Modified: / 16-03-2011 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17585
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17586
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17587
_MULTINEW:typeRef _:dim1 _:dim2 _:dim3 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17588
    |clsRef cls arr elType elSizes|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17589
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17590
    clsRef := typeRef asClassPointerRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17591
    cls := clsRef javaArrayClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17592
    arr := cls new:dim3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17593
    elType := typeRef deref.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17594
    1 to:dim3
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17595
        do:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17596
            [:idx | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17597
            arr at:idx
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17598
                put:(self 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17599
                        _MULTINEW:elType
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17600
                        _:dim1
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17601
                        _:dim2) ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17602
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17603
"/ self halt.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17604
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17605
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17606
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17607
    "Modified: / 6.1.1998 / 23:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17608
    "Created: / 8.1.1999 / 14:15:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17609
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17610
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17611
!JavaVM class methodsFor:'windows - events'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17612
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17613
awtEventsForEvent: anEvent javaWindow: jWin 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17614
    "given an ST/X event, create corresponding AWT event(s) for it"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17615
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17616
    | jEv  jEv1  jEv2  modifiers  key  keyChar  untranslatedKey  id  type  x  y  w  h  view  menu  resized  moved  eventArgs  clickCount  jRect  jKeyEventClass  jInputEventClass  jMouseEventClass  jWindowEventClass  jPaintEventClass  jComponentEventClass |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17618
    type := anEvent type.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17619
    eventArgs := anEvent arguments.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17620
    key := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17621
    modifiers := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17622
    x := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17623
    y := 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17624
    ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17625
        or: [ (type == #graphicExposeX:y:width:height:) or: [ (type == #damage) ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17626
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17627
                "/        jWindowEventClass := Java classForName:'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17628
                "/        id := (jPaintEventClass instVarNamed:'PAINT').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17629
                jPaintEventClass := self classForName: 'java.awt.event.PaintEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17630
                id := (jPaintEventClass instVarNamed: 'UPDATE').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17631
                ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17632
                    or: [ (type == #graphicExposeX:y:width:height:) ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17633
                        ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17634
                            x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17635
                            y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17636
                            w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17637
                            h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17638
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17639
                        ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17640
                            x := eventArgs left.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17641
                            y := eventArgs top.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17642
                            w := eventArgs width.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17643
                            h := eventArgs height.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17644
                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17645
                jRect := (Java classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17646
                jRect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17647
                jRect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17648
                jRect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17649
                jRect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17650
                jEv := jPaintEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17651
                jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17652
                jEv instVarNamed: 'updateRect' put: jRect.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17653
                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17654
"/        jEv instVarNamed:'g'         put:jWin.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17655
                
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17656
                ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17657
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17658
    (anEvent isKeyEvent 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17659
        or: [ anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17660
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17661
                jInputEventClass := Java classForName: 'java.awt.event.InputEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17662
                anEvent hasAlt ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17663
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'ALT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17664
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17665
                anEvent hasCtrl ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17666
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'CTRL_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17667
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17668
                anEvent hasMeta ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17669
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'META_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17670
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17671
                anEvent hasShift ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17672
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17673
                                bitOr: (jInputEventClass instVarNamed: 'SHIFT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17674
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17675
                anEvent hasButton1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17676
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17677
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON1_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17678
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17679
                anEvent hasButton2 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17680
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17681
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON2_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17682
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17683
                anEvent hasButton3 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17684
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17685
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON3_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17686
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17687
                anEvent isPointerEnterLeaveEvent ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17688
                    "/ ST/X does not (yet) record this information
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17689
                    "/ with pointerLeave events.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17690
                    x := anEvent x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17691
                    y := anEvent y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17692
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17693
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17694
    anEvent isKeyEvent ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17695
        jKeyEventClass := Java classForName: 'java.awt.event.KeyEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17696
        key := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17697
        keyChar := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17698
        key := anEvent key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17699
        key isCharacter ifTrue: [ key := keyChar := key asciiValue ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17700
            untranslatedKey := anEvent view device keyboardMap keyAtValue: key
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17701
                        ifAbsent: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17702
            untranslatedKey == #Insert ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17703
                key := jKeyEventClass instVarNamed: 'VK_INSERT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17704
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17705
            untranslatedKey == #Delete ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17706
                key := jKeyEventClass instVarNamed: 'VK_DELETE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17707
                "/ 127
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17708
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17709
            untranslatedKey == #BackSpace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17710
                key := jKeyEventClass instVarNamed: 'VK_BACK_SPACE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17711
                "/ 8
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17712
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17713
            untranslatedKey == #Return ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17714
                key := jKeyEventClass instVarNamed: 'VK_ENTER'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17715
                "/ 13
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17716
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17717
            untranslatedKey == #Tab ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17718
                key := jKeyEventClass instVarNamed: 'VK_TAB'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17719
                "/ 9
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17720
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17721
            untranslatedKey == #Home ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17722
                key := jKeyEventClass instVarNamed: 'VK_HOME'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17723
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17724
            untranslatedKey == #End ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17725
                key := jKeyEventClass instVarNamed: 'VK_END'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17726
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17727
            (key == #PreviousPage or: [ untranslatedKey == #Prior ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17728
                key := jKeyEventClass instVarNamed: 'VK_PAGE_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17729
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17730
            (key == #NextPage or: [ key == #EndOfText ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17731
                key := jKeyEventClass instVarNamed: 'VK_PAGE_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17732
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17733
            untranslatedKey == #CursorUp ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17734
                key := jKeyEventClass instVarNamed: 'VK_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17735
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17736
            untranslatedKey == #CursorDown ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17737
                key := jKeyEventClass instVarNamed: 'VK_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17738
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17739
            untranslatedKey == #CursorLeft ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17740
                key := jKeyEventClass instVarNamed: 'VK_LEFT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17741
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17742
            untranslatedKey == #CursorRight ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17743
                key := jKeyEventClass instVarNamed: 'VK_RIGHT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17744
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17745
            (#( #F1 #F2 #F3 #F4 #F5 #F6 #F7 #F8 #F9 #F10 #F11 #F12 ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17746
                includes: untranslatedKey) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17747
                    ifTrue: [ key := jKeyEventClass instVarNamed: ('VK_' , untranslatedKey) ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17748
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17749
        (type == #keyPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17750
            id := jKeyEventClass instVarNamed: 'KEY_PRESSED'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17751
        ] ifFalse: [ id := jKeyEventClass instVarNamed: 'KEY_RELEASED' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17752
        jEv := jKeyEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17753
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17754
        jEv instVarNamed: 'keyCode' put: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17755
        jEv instVarNamed: 'keyChar' put: keyChar.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17756
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17757
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17758
"/        jEv instVarNamed:'x'         put:x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17759
"/        jEv instVarNamed:'y'         put:y.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17760
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17761
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17762
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17763
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17764
    (anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17765
        jMouseEventClass := Java classForName: 'java.awt.event.MouseEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17766
        clickCount := 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17767
        (type == #buttonPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17768
            id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17769
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17770
            (type == #buttonRelease:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17771
                id := jMouseEventClass instVarNamed: 'MOUSE_RELEASED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17772
            ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17773
                (type == #buttonMotion:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17774
                    (anEvent state bitAnd: (anEvent view device anyButtonMotionMask)) == 0 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17775
                        id := jMouseEventClass instVarNamed: 'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17776
                    ] ifFalse: [ id := jMouseEventClass instVarNamed: 'MOUSE_DRAGGED'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17777
                ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17778
                    "/                    (type == #'pointerMotion:x:y:') ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17779
                    "/                        id := jMouseEventClass instVarNamed:'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17780
                    "/                    ] ifFalse:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17781
                    (type == #pointerEnter:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17782
                        id := jMouseEventClass instVarNamed: 'MOUSE_ENTERED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17783
                    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17784
                        (type == #pointerLeave:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17785
                            id := jMouseEventClass instVarNamed: 'MOUSE_EXITED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17786
                        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17787
                            (type == #buttonMultiPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17788
                                id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17789
                                clickCount := 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17790
                            ] ifFalse: [ self halt. ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17791
                            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17792
"/                        ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17793
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17794
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17795
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17796
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17797
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17798
        jEv := jMouseEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17799
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17800
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17801
        jEv instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17802
        jEv instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17803
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17804
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17805
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17806
    (type == #configureX:y:width:height:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17807
        view := anEvent view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17808
        x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17809
        y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17810
        w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17811
        h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17812
        resized := (w ~~ view width or: [ h ~~ view height ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17813
        moved := (x ~~ view left or: [ y ~~ view top ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17814
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17815
"/        (view isTopView or:[view isPopUpView]) ifTrue:[
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17816
        "/ view must update its origin/extent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17817
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17818
        view dispatchEvent: anEvent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17819
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17820
"/        ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17821
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17822
        "/ must change the components extent
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17823
        "/ is there no cleaner way to do this ?
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17824
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17825
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17826
        view isTopView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17827
            view isPopUpView ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17828
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17829
                "/ sigh - don't include the menu.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17830
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17831
                menu := self topViewsMenu: view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17832
                menu notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17833
                    "/ must add the menus height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17834
                    h := h - menu height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17835
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17836
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17837
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17838
        jWin instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17839
        jWin instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17840
        jWin instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17841
        jWin instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17842
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17843
        moved ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17844
            id := (jComponentEventClass instVarNamed: 'COMPONENT_MOVED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17845
            jEv1 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17846
            jEv1 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17847
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17848
        resized ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17849
            id := (jComponentEventClass instVarNamed: 'COMPONENT_RESIZED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17850
            jEv2 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17851
            jEv2 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17852
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17853
        jEv1 isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17854
            jEv2 isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17855
            ^ Array with: jEv2
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17856
        ] ifFalse: [ jEv2 isNil ifTrue: [ ^ Array with: jEv1 ] ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17857
        ^ Array with: jEv1 with: jEv2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17858
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17859
    (type == #focusIn) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17860
        "/ 'focusIn' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17861
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17862
        id := (jComponentEventClass instVarNamed: 'FOCUS_GAINED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17863
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17864
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17865
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17866
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17867
    (type == #focusOut) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17868
        "/ 'focusOut' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17869
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17870
        id := (jComponentEventClass instVarNamed: 'FOCUS_LOST').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17871
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17872
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17873
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17874
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17875
    (type == #mapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17876
        "/ 'mapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17877
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17878
        id := (jComponentEventClass instVarNamed: 'COMPONENT_SHOWN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17879
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17880
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17881
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17882
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17883
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17884
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17885
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17886
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17887
    (type == #unmapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17888
        "/ 'unmapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17889
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17890
        id := (jComponentEventClass instVarNamed: 'COMPONENT_HIDDEN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17891
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17892
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17893
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17894
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17895
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17896
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17897
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17898
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17899
    (type == #terminate) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17900
        jWindowEventClass := Java classForName: 'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17901
         "NEW
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17902
         id := (jWindowEventClass instVarNamed:'WINDOW_CLOSING').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17903
        " "OLD "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17904
        id := (jWindowEventClass instVarNamed: 'WINDOW_CLOSED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17905
         
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17906
        jEv := jWindowEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17907
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17908
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17909
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17910
    EventTrace == true ifTrue: [ ('JAVA: unhandled event:' , type) infoPrintCR. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17911
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17913
    "Created: / 6.1.1998 / 20:38:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17914
    "Modified: / 9.1.1999 / 09:29:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17915
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17916
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17917
delegatesTo:someOne
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17918
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17920
    "Created: / 25.9.1999 / 16:11:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17921
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17923
doWindowsEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17924
    "invoked in an endless loop by the WToolkit-eventLoop
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17925
     native method."
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17926
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17927
    | sensor  event  more |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17928
    (JavaWindowGroup isNil or: [ KnownWindows isNil ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17929
        "/ '*** eventThread: no windowGroup / views ...' printCR.        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17930
        self halt: 'monitors are reimplemented, change me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17931
        "self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17932
            waitFor: FirstWindowCreationSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17933
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17934
            timeOut: nil."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17935
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17936
        "/ Delay waitForSeconds:0.1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17937
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17938
        ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17939
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17940
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17941
    "/ wait for an event to arrive ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17942
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17943
    sensor := JavaWindowGroup sensor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17944
    [ sensor hasEvents or: [ sensor damageCount ~~ 0 ] ] whileFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17945
        EventTrace ifTrue: [ '*** eventThread waiting ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17946
        Processor activeProcess state: #eventWait.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17947
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17948
            waitFor: sensor eventSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17949
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17950
            timeOut: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17951
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17952
    EventTrace ifTrue: [ '*** eventThread event arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17953
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17954
    "/ EventTrace := true
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17955
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17956
    more := true.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17957
    [ more ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17958
        sensor hasDamage ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17959
            EventTrace ifTrue: [ '*** eventThread: damage arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17960
            event := sensor nextDamage.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17961
        ] ifFalse: [ event := sensor nextEvent. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17962
        event isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17963
            EventTrace == true ifTrue: [ '*** eventThread: nil event ignored' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17964
            ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17965
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17966
        more := self processEvent: event
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17967
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17968
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17969
    "Created: / 06-01-1998 / 21:02:40 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17970
    "Modified: / 30-12-1998 / 19:21:36 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17971
    "Modified: / 22-11-2011 / 13:22:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17972
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17973
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17974
processEvent: event 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17975
    | evQ  jEvents  jWToolKitClass  jWToolKit  jWinPeer  jWin  v  eventConsumed |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17976
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17977
    KnownWindows isNil ifTrue: [ ^ false ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17978
    v := event view.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17979
    jWinPeer := self jPeerForView: v.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17980
    jWinPeer isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17981
        v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17982
            "/ mhmh - an event for a JavaView,
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17983
            "/ which has no peer (anyMore ?)
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17984
            "/ should not happen.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17985
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17986
            "/ mhmh - an event for a subcomponent of an ST widget.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17987
            "/ let it be handled normally.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17988
            EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17989
                ('*** eventThread: ' , event type 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17990
                    , '-event for unknown java-view - passed to view.') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17991
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17992
            event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17993
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17994
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17995
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 17996
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17997
    "/ change:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17998
    "/ in the previous version, events for ST/X widgets (i.e. buttons etc)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17999
    "/ where not passed to java, but instead forwarded directly to the widget
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18000
    "/ by the code below.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18001
    "/ This has changed, to pass it to Java, which eventually passes it to the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18002
    "/ peer via the handleEvent native method (unless the event got consumed).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18003
    "/ This is req'd to let java keep track of keyboard/mouse input for widgets.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18004
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18005
    (event isDamage and: [ v isJavaView ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18006
        "/    "/ most views handle their events themself (being ST/X views) ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18007
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18008
        "/    v class ~~ JavaView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18009
        "/"/        v class ~~ StandardSystemView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18010
        "/"/            EventTrace ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18011
        "/"/                    ('*** eventThread: event handled by view itself (' , v class name , ')') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18012
        "/"/            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18013
        "/"/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18014
        "/"/            ^ self.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18015
        "/"/        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18016
        "/        (event type == #'exposeX:y:width:height'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18017
        "/        or:[event type == #'graphicsExposeX:y:width:height']) ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18018
        "/            "/ send to view, but also handle in JAVA
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18019
        "/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18020
        "/        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18021
        "/    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18022
        (#( #mapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18023
         #unmapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18024
         #configureX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18025
         #exposeX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18026
         #graphicsExposeX:y:width:height: ) includes: event type) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18027
            event sendEventWithFocusOn: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18028
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18029
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18030
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18031
    "/ what a kludge - some events are passed back to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18032
    "/ ST via the WComponent-handleEvent native method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18033
    "/ However, repaints are not.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18034
    "/ In order to let ST widgets do the drawing,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18035
    "/ selectively filter exposeEvents from Java ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18036
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18037
    eventConsumed := false.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18038
    v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18039
        "/ all events handled by Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18040
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18041
        eventConsumed := true.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18042
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18043
        "/ let widget handle it.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18044
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18045
        event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18046
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18047
        "/ some are not passed to Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18048
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18049
        event isDamage ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18050
            (v isKindOf: Button) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18051
            (v isKindOf: TextView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18052
            (v isKindOf: Label) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18053
            (v isKindOf: ComboBoxView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18054
            (v isKindOf: ScrollBar) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18055
            (v isKindOf: Scroller) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18056
            (v isKindOf: MenuPanel) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18057
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18058
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18059
    jWin := jWinPeer instVarNamed: 'target'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18060
    EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18061
        ('*** eventThread: event (' , event type , ') handled by JAVA: ') 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18062
            infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18063
        jWinPeer class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18064
        ' (' infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18065
        jWin class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18066
        ')' infoPrintCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18067
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18068
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18069
    "/ create an event
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18070
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18071
    jEvents := self awtEventsForEvent: event javaWindow: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18072
    jEvents isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18073
        EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18074
            ('*** eventThread: event ignored: ' , event type) printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18075
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18076
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18077
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18078
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18079
"/    v superView isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18080
"/        ('*** eventThread: event ignored for topView: ' , event type) printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18081
"/        ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18082
"/    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18083
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18084
    jWToolKitClass := self classForName: 'java.awt.Toolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18085
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18086
    "/ jWToolKit := jWToolKitClass perform:#getDefaultToolkit.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18087
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18088
    jWToolKit := jWToolKitClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18089
                performStatic: #'getDefaultToolkit()Ljava/awt/Toolkit;'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18090
    jEvents do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18091
        :jEv | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18092
        jEv instVarNamed: 'source' put: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18093
        jEv instVarNamed: 'consumed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18094
        eventConsumed ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18095
            "/ the first gets the original event as data
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18096
            jEv instVarNamed: 'data' put: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18097
            eventConsumed := true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18098
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18099
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18100
        "/ post it (them) to the event queue
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18101
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18102
        EventTrace == true ifTrue: [ 'postEvent to Java ...' printCR. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18103
        jWToolKit "class" perform: #'postEvent(Ljava/awt/AWTEvent;)V' with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18104
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18105
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18107
    "Created: / 6.1.1998 / 20:36:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18108
    "Modified: / 10.12.1998 / 19:36:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18109
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18111
!JavaVM::Reflection class methodsFor:'instance creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18113
for: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18115
    ^self new setVM: aJavaVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18117
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18118
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18120
new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18121
    "return an initialized instance"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18122
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18123
    ^ self basicNew initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18124
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18126
!JavaVM::Reflection methodsFor:'debugging'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18127
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18128
returnNilIfMissing
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18129
    ^ returnNilIfMissing.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18131
    "Created: / 28-01-2011 / 15:14:37 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18132
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18134
returnNilIfMissing:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18135
    returnNilIfMissing:= aBoolean.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18137
    "Created: / 28-01-2011 / 15:25:35 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18138
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18140
!JavaVM::Reflection methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18142
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18143
    constantPoolMapping := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18144
    javaClasses := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18145
    javaArrayClasses := IdentityDictionary new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18146
    realMethods := OrderedCollection new.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18147
    javaMethodsPerMethod := Dictionary new
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18148
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18149
    "Created: / 21-12-2010 / 19:46:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18150
    "Modified: / 09-02-2011 / 00:24:28 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18151
    "Modified: / 05-12-2011 / 09:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18152
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18154
setVM: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18155
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18156
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18157
    itself, not its instance)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18159
    vm := aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18161
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18162
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18164
!JavaVM::Reflection methodsFor:'reflection - classes'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18165
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18166
classForJavaClassObject: aJavaClassObject 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18167
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18168
        Given an instance of java.lang.Class, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18169
        real (Java) class associated with it. The instance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18170
        of java.lang.Class should be first created by myself
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18171
        (by sending #javaClassObjectForClass:)"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18172
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18173
    (javaClasses at: aJavaClassObject ifAbsent: [ 123 ]) 
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 18174
        == (JavaVM classNamed: 'stx/libjava/tests/junir/JUnit3Tests') 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18175
            ifTrue: [ self breakPoint: #jv ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18176
    ^ javaClasses at: aJavaClassObject
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18177
        ifAbsent: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18178
            vm internalError: 'No class associated with given java.lang.Class!!'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18179
            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18180
            "/Please, no nils
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18181
            
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18182
            self returnNilIfMissing ifTrue: nil
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18183
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18185
    "Created: / 28-01-2011 / 15:22:39 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18186
    "Modified: / 05-02-2011 / 20:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 18187
    "Modified: / 21-10-2011 / 13:41:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18188
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18190
javaArrayClassObjectForClass:aClass 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18191
    ^ javaArrayClasses at:aClass ifAbsent:[self returnNilIfMissing ifTrue:nil].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18193
    "Created: / 28-01-2011 / 14:56:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18194
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18196
javaArrayClassObjectForClass:aClass ifAbsentPut:classOfaClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18197
    ^ javaArrayClasses at:aClass ifAbsentPut: classOfaClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18199
    "Created: / 28-01-2011 / 14:59:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18200
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18201
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18202
javaClassObjectArrayForClasses: classes 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18203
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18204
        Answers an instance of java.lang.Class[] for given
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18205
        real (Java) classes."
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18206
    
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18207
    | array |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18208
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18209
    array := (vm classForName: 'java.lang.Class') javaArrayClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18210
                new: classes size.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18211
    classes isNilOrEmptyCollection ifTrue: [ ^ array ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18212
    classes 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18213
        withIndexDo: [:cls :idx | array at: idx put: (self javaClassObjectForClass: cls) ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18214
    ^ array
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18215
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18216
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18217
    "Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18218
    "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18219
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18221
javaClassObjectForClass:aClass 
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18222
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18223
    ^self javaClassObjectForClass:aClass init: true.
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18224
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18225
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18226
    "Modified: / 12-08-2011 / 19:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18227
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18228
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18229
javaClassObjectForClass: aClass init: init 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18230
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18231
        Answers an instance of java.lang.Class for given
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18232
        real (Java) class."
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18233
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18234
    | javaClassObj |
1030
9f87a1830611 fixed bug in java registry and we BOOT :)
hlopkmar
parents: 1029
diff changeset
 18235
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18236
    self assert: aClass isBehavior message: 'aClass is not behavior'.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18237
    self assert: aClass ~~ Array
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18238
        message: 'aClass should not be Array (old impl)'.
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
 18239
    javaClasses at: aClass ifPresent: [:javaClassObj | ^ javaClassObj ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18240
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18241
    "/ class must be initialized (with all of its superclasses ?).
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18242
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18243
    false ifTrue: [ aClass isJavaClass ifTrue: [ aClass classInit ]. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18244
    javaClassObj := (vm classForName: 'java.lang.Class') new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18245
    self rememberJavaClassObject: javaClassObj for: aClass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18246
    ^ javaClassObj
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18248
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18249
    "Created: / 12-08-2011 / 19:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18250
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18251
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18252
javaClassObjectForClassNamed: className 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18253
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18254
        Answers an instance of java.lang.Class for given
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18255
        (java) class name. The className may be name of primitive
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18256
        type, i.e. 'int', 'double'."
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18257
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18258
    | cls |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18259
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18260
    cls := JavaDescriptor baseTypesByTypeName at: className
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18261
                ifAbsent: [ vm classForName: className ].
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18262
    ^ self javaClassObjectForClass: cls.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18264
    "Created: / 03-02-2011 / 21:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18265
    "Modified: / 08-04-2011 / 14:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18266
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18267
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18268
rememberJavaClassObject: jclass for: class
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18269
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18270
    javaClasses at: class put: jclass.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18271
    javaClasses at: jclass put: class.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18272
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18273
    "Created: / 05-12-2011 / 09:57:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18274
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18276
!JavaVM::Reflection methodsFor:'reflection - constant pool'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18278
constantPoolFor:javaConstantPoolObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18279
    ^ constantPoolMapping at:javaConstantPoolObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18280
        ifAbsent:[self error:'Given ConstantPool was not created by JVM']
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18282
    "Created: / 21-12-2010 / 19:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18283
    "Modified: / 28-01-2011 / 14:56:54 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18284
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18286
javaConstantPoolObjectFor: aConstantPool
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18288
    ^constantPoolMapping at: aConstantPool ifAbsent:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18289
        [| javaConstantPoolObject |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18290
        javaConstantPoolObject := (vm classForName:'sun.reflect.ConstantPool') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18291
        constantPoolMapping at: aConstantPool put: javaConstantPoolObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18292
        constantPoolMapping at: javaConstantPoolObject put: aConstantPool.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18293
        javaConstantPoolObject]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18295
    "Created: / 21-12-2010 / 19:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18296
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18298
!JavaVM::Reflection methodsFor:'reflection - methods & ctors'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18300
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18301
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18302
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18304
    | jCtor |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18305
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18306
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18308
    jCtor := (Java classForName:'java.lang.reflect.Constructor') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18309
    self javaMethodObjectLikeSlotsInto: jCtor forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18310
    self rememberJavaMethodObject: jCtor for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18312
    ^ jCtor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18314
    "Created: / 09-02-2011 / 10:28:12 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18315
    "Modified: / 05-12-2011 / 10:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18316
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18318
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18319
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18320
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18321
     | jMethod |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18322
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18323
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18325
    jMethod := (Java classForName:'java.lang.reflect.Method') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18326
    self javaMethodObjectLikeSlotsInto: jMethod forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18327
    self rememberJavaMethodObject: jMethod for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18329
    jMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18330
        instVarNamed: #name       put: (self javaStringObjectForString: (method selector upTo:$() interned: true);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18331
        instVarNamed: #returnType put: (method descriptor returnClassObject);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18332
        instVarNamed: #annotationDefault put: (method annotations default bytes);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18334
        yourself.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18335
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18336
    ^jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18338
    "Created: / 09-02-2011 / 10:29:46 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18339
    "Modified: / 05-12-2011 / 10:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18340
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18341
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18342
javaMethodObjectLikeSlotsInto: jMethod forMethod: method 
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18343
    "
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18344
       Fill in slots of given instance of java.lang.Method or
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18345
       java.lang.Constructor"
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18346
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18347
    | desc |
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18348
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18349
    desc := method descriptor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18350
    jMethod
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18351
        instVarNamed: #clazz put: (self javaClassObjectForClass: method javaClass);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18352
        instVarNamed: #slot put: 0;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18353
        instVarNamed: #modifiers put: method accessFlags;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18354
        instVarNamed: #parameterTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18355
            put: (self javaClassObjectArrayForClasses: desc parameterClasses);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18356
        instVarNamed: #exceptionTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18357
            put: (self javaClassObjectArrayForClasses: method javaExceptionTable);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18358
        instVarNamed: #annotations put: (method annotations runtimeVisible bytes);
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18359
        yourself.
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18360
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18361
    method signature notNil ifTrue:[
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18362
        jMethod                 
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18363
            instVarNamed: #signature
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18364
            put: (self javaStringObjectForString: method signature interned: true)
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18365
    ].
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18366
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18367
    ^ jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18369
    "Created: / 11-02-2011 / 06:44:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18370
    "Modified: / 04-06-2011 / 17:17:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18371
    "Modified: / 04-12-2011 / 19:40:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18372
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18374
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18375
     "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18376
      it."
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18377
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18378
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18379
    slot := constructor instVarNamed: #slot.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18380
    ^realMethods at: slot ifAbsent:[self error: 'No ctor found for java ctor object'].
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18381
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18382
"/    |class signature|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18383
"/    class := self classForJavaClassObject:(constructor instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18384
"/    signature := Java as_ST_String:(constructor instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18385
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18386
"/        mthd signature = signature ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18387
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18388
"/        ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18389
"/    ].
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18390
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18391
    "Created: / 09-02-2011 / 10:36:07 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18392
    "Modified: / 05-12-2011 / 10:04:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18393
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18394
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18395
methodForJavaMethodObject:jmethod 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18396
     "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18397
         Given an instance of java.lang.reflect.Method, answers
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18398
         real method associated with it. 
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18399
    "
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18400
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18401
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18402
    slot := jmethod instVarNamed: #slot.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18403
    ^realMethods at: slot ifAbsent:[self error: 'No method found for java method object'].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18404
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18405
"/    |class name signature |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18406
"/
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18407
"/    class := self classForJavaClassObject:(aJavaMethodObject instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18408
"/    name := Java as_ST_String:(aJavaMethodObject instVarNamed:#name).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18409
"/    signature := Java as_ST_String:(aJavaMethodObject instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18410
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18411
"/        (mthd name = name and:[mthd signature = signature]) ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18412
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18413
"/        ]
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18414
"/    ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18415
"/    self assert: false description: 'No such method, malformed java.lang.reflect.Method object?'.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18416
"/    ^nil.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18417
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18418
    "Created: / 09-02-2011 / 10:32:14 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18419
    "Modified: / 05-12-2011 / 10:05:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18420
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18421
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18422
rememberJavaMethodObject: jmethod for: method
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18423
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18424
    javaMethodsPerMethod at: method put: jmethod.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18425
    realMethods add: method.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18426
    jmethod instVarNamed: #slot put: realMethods size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18427
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18428
    "Created: / 05-12-2011 / 10:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18429
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18431
!JavaVM::Reflection methodsFor:'reflection - other'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18433
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18434
    ^ self javaStringObjectForString: string interned: false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18436
    "Created: / 09-02-2011 / 10:34:57 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18437
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18438
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18439
javaStringObjectForString:string interned:intern  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18440
    | s |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18441
    s := Java as_String: string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18442
    ^intern ifTrue:[Java intern: s] ifFalse:[s]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18444
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18445
    "Created: / 09-02-2011 / 10:34:29 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18446
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18448
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18449
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18450
version
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 18451
    ^ '$Id$'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18452
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18453
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18454
version_CVS
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
 18455
    ^ '§Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.186 2011/08/22 14:49:28 vrany Exp §'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18456
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18457
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18458
version_SVN
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 18459
    ^ '$Id$'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18460
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18461
924
7e66564a2302 fix for native sun.reflect.NativeMethodAccessorImpl.invoke0()
vranyj1
parents: 923
diff changeset
 18462
JavaVM initialize!