src/JavaVM.st
author vranyj1
Wed, 18 Jul 2012 08:29:18 +0000
branchjk_new_structure
changeset 1527 c12b45a59659
parent 1525 4463b11f29f4
child 1528 b14aaf857d7b
permissions -rw-r--r--
- JavaClass changed: #classInitSpecial - JavaVM added: #_java_io_RandomAccessFile_writeBytes: #_java_lang_StrictMath_sqrt:
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
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    30
		SimulatedNativeLibs LoadedNativeLibs JavaWindowGroup KnownWindows
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    31
		DrawOPTrace WindowOPTrace WindowCreationTrace EventTrace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    32
		ThreadTrace MonitorTrace MonitorTraceId ExceptionTrace InsnCount
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    33
		InsnCounts FileOpenTrace FileAccessTrace FileOpenConfirmation
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    34
		SocketConnectConfirmation FileIOTrace OpenFileTable
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    35
		CachedNativeMethodTable ExceptionDebug ExitDebug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    36
		JavaConsoleStream StandardThreadGroup EnteredMonitorsPerProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    37
		AcquiredMonitorsPerProcess JavaMethods DUMMY_LONG_HIGHWORD
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    38
		DUMMY_DOUBLE_HIGHWORD NoAudio FirstWindowCreationSemaphore
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    39
		PermittedDirectories PermittedHostConnects SimulatedOS
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    40
		O_WGgraphics_originX O_WGgraphics_originY O_WGgraphics_pData
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    41
		O_FramePeer_pNativeWidget O_FramePeer_pData ImageStretchCache
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    42
		LastGraphics LastGC EnteredMonitorObject
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    43
		EnteredMonitorObjectCount EnteredMonitorProcess LeftMonitorObject
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    44
		JavaEventThread JavaScreenUpdaterThread JavaEventQueueThread
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
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
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
    52
		threadInterrupts EagerResolvingEnabled OldspaceIncreased'
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
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1259
boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1260
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1261
    Java initialize.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1262
    self initializeVM.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1263
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1264
    "Created: / 21-02-2012 / 18:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1265
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1266
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1267
compile:source selector:smalltalkSelector asJavaMethod:javaSelector fakedSource:fakedSource in:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1268
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1270
    |cloneCode|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1272
    (aClass implements:javaSelector) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1273
        Class packageQuerySignal answer:'__temporary__'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1274
        do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1275
            aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1276
                compile:source
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1277
                classified:'java support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1278
                logged:false.
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
        cloneCode := aClass compiledMethodAt:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1282
        cloneCode source:fakedSource.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1284
        Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1285
            aClass removeSelector:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1286
            aClass addSelector:javaSelector withMethod:cloneCode.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1287
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1288
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1290
    "Created: / 5.11.1998 / 19:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1291
    "Modified: / 5.11.1998 / 19:37:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1292
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1294
deinitialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1295
    StandardThreadGroup := nil.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1296
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1297
    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
  1298
        KnownWindows do: [:v | v isTopView ifTrue: [ v destroy ] ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1299
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1300
    JavaWindowGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1301
    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
  1302
    OpenFileTable := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1303
    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
  1304
    SystemClassLoader := nil.
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
     JavaVM deinitialize"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1309
    "Created: / 03-01-1998 / 21:28:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1310
    "Modified: / 03-12-1998 / 20:33:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1311
    "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
  1312
    "Modified: / 16-11-2011 / 09:46:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1313
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1315
deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1316
    "deinstall additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1318
    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1319
        #'clone()Ljava/lang/Object;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1320
        #'equals(Ljava/lang/Object;)Z'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1321
        #'toString()Ljava/lang/String;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1322
        #'getClass()Ljava/lang/Class;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1323
     ) do:[:sel |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1324
        (Object implements:sel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1325
            Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1326
                Object removeSelector:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1327
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1328
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1329
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1331
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1332
     self deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1333
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1335
    "Created: / 4.2.1998 / 21:37:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1336
    "Modified: / 5.12.1998 / 15:27:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1337
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1338
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1339
flushClasses
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1340
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1341
    ClassRegistry notNil ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1342
        ClassRegistry flush
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1343
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1344
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1345
    "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
  1346
!
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1347
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1348
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1349
    DUMMY_LONG_HIGHWORD := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1350
    DUMMY_DOUBLE_HIGHWORD := 2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1351
    StandardThreadGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1352
    NoAudio := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1353
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1354
    "/ NoAudio := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1355
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1356
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1357
    FullExceptionTrace := StackTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1358
    WindowOPTrace := DrawOPTrace := EventTrace := ThreadTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1359
    MonitorTrace := ExceptionTrace := FileOpenTrace := FileIOTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1360
    ExceptionDebug := ExitDebug := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1361
    ExceptionDebugPatterns := Set new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1362
    WindowCreationTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1363
    FileOpenConfirmation := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1364
    SocketConnectConfirmation := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1365
    WindowOPTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1366
    MonitorTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1367
    ThreadTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1368
    UnhandledJavaExceptionSignal := (Signal new) mayProceed: true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1369
    UnhandledJavaExceptionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1370
        message: #unhandledJavaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1371
    UnhandledJavaExceptionSignal notifierString: 'unhandled java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1372
    JavaExceptionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1373
    JavaExceptionSignal nameClass: self message: #javaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1374
    JavaExceptionSignal notifierString: 'java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1375
    UnimplementedInstructionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1376
    UnimplementedInstructionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1377
        message: #unimplementedInstructionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1378
    UnimplementedInstructionSignal notifierString: 'unimplemented instruction'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1379
    UnimplementedNativeMethodSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1380
    UnimplementedNativeMethodSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1381
        message: #unimplementedNativeMethodSignal.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1382
    UnimplementedNativeMethodSignal 
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1383
        notifierString: 'unimplemented native method'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1384
    BadMessageSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1385
    BadMessageSignal nameClass: self message: #badMessageSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1386
    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
  1387
    InternalErrorSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1388
    InternalErrorSignal nameClass: self message: #internalErrorSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1389
    InternalErrorSignal notifierString: 'internal error'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1390
    CallHandlerSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1391
    CallHandlerSignal nameClass: self message: #callHandlerSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1392
    CallHandlerSignal notifierString: 'internal signal'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1393
    StdinReplacementFileQuerySignal := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1394
    StdinReplacementFileQuerySignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1395
        message: #stdinReplacementFileQuerySignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1396
    StdinReplacementFileQuerySignal notifierString: 'asking for stdin stream'.
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1397
    JavaPrivilegedAccessQuery := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1398
    JavaPrivilegedAccessQuery defaultAnswer: false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1399
    AssertionsEnabled := true.
1069
d5d204ceb991 JavaVM: Added ClassRegistry initialization into JavaVM>>initialize
vranyj1
parents: 1063
diff changeset
  1400
    ClassRegistry := JavaClassRegistry new.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1401
    FinalizationEnabled := true.
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1402
    FinalizationLobby := Registry new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1403
    EagerResolvingEnabled := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1405
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1406
     JavaVM initialize"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  1407
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1408
    "Created: / 02-01-1998 / 18:02:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1409
    "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
  1410
    "Modified: / 09-10-2011 / 20:29:10 / Marcel Hlopko <hlopik@gmail.com>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1411
    "Modified: / 08-12-2011 / 21:06:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
  1412
    "Modified: / 09-04-2012 / 21:01:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1413
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1415
initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1416
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1417
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1418
    "/ since we use smalltalk Arrays for JavaArray, some
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1419
    "/ additional (java-) protocol is required.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1420
    "/ This is also useful, when Smalltalk objects are passed to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1421
    "/ java ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1422
    "/ We should implement all of the java.lang.Object protocol in
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1423
    "/ Object, to be on the bright side of life; more of this later ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1425
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1426
        compile:'__clone
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1427
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1428
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1429
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1430
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1432
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1433
        selector:#'__clone' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1434
        asJavaMethod:#'clone()Ljava/lang/Object;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1435
        fakedSource:'#''clone()Ljava/lang/Object;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1436
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1437
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1438
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1439
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1441
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1442
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1444
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1446
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1447
        compile:'__equals:arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1448
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1449
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1450
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1451
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1453
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1454
        selector:#'__equals:' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1455
        asJavaMethod:#'equals(Ljava/lang/Object;)Z' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1456
        fakedSource:'#''equals(Ljava/lang/Object;)Z''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1457
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1458
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1459
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1460
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1462
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1463
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1464
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1465
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1466
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1467
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1468
        compile:'__toString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1469
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1470
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1471
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1472
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1474
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1475
        selector:#'__toString' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1476
        asJavaMethod:#'toString()Ljava/lang/String;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1477
        fakedSource:'#''toString()Ljava/lang/String;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1478
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1479
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1480
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1481
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1483
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1484
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1486
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1488
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1489
        compile:'__getClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1490
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1491
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1492
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1493
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1494
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1495
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1496
        selector:#'__getClass' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1497
        asJavaMethod:#'getClass()Ljava/lang/Class;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1498
        fakedSource:'#''getClass()Ljava/lang/Class;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1499
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1500
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1501
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1502
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1504
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1505
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1507
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1508
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1509
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1510
        compile:'__hashCode
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1511
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1512
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1513
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1514
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1516
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1517
        selector:#'__hashCode' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1518
        asJavaMethod:#'hashCode()I' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1519
        fakedSource:'#''hashCode()I''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1520
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1521
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1522
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1523
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1525
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1526
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1529
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1530
     self initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1531
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1533
    "Modified: / 28-01-1997 / 19:38:58 / stefan"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1534
    "Modified: / 22-01-1998 / 21:23:40 / av"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1535
    "Created: / 04-02-1998 / 21:35:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1536
    "Modified: / 30-12-1998 / 21:07:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1537
    "Modified: / 25-10-2010 / 16:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1538
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1540
initializeBaseClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1541
    "load req'd base classes"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1542
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1543
    #( 'java.lang.Object'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1544
     'java.lang.Class'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1545
     'java.lang.String'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1546
     'java.lang.System' ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1547
            do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1548
                :cName | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1549
                (self classForName: cName) isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1550
                    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1551
                        warn: ('JavaVM: could not find required class: ' , cName asText allBold 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1552
                                , '\\Please check the Java settings (javaHome)') withCRs.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1553
                    AbortSignal raise.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1554
                    ^ self
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1555
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1556
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1557
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1558
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1559
     self initializeBaseClasses"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1560
    "Created: / 3.1.1998 / 21:13:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1561
    "Modified: / 23.12.1999 / 19:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1562
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1563
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1564
initializeJavaResources
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1565
    LockTable := WeakIdentityDictionary new.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1566
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1567
    LockTableAccess name: 'JavaVM lock table access mutex'.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1568
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1569
        log: 'Initializing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1570
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1571
        facility: #JVM.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1572
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1573
    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1574
    log: 'Initializing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1575
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1576
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1577
        AcquiredMonitorsPerProcess := IdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1578
    self initializePrimitiveClasses.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1579
    self initializeOpenFileTable.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1580
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1581
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1582
     JavaVM releaseAllMonitors"
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
    "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
  1585
    "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
  1586
    "Created: / 16-11-2011 / 14:23:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  1587
    "Modified: / 13-04-2012 / 00:34:14 / 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
  1588
!
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1589
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1590
initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1591
    OpenFileTable := OrderedCollection 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1592
			with:Stdin 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1593
			with:(JavaConsoleStream ? Stdout)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1594
			with:(JavaConsoleStream ? Stderr).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1596
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1597
     JavaVM initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1598
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1600
    "Modified: / 6.8.1997 / 00:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1601
    "Created: / 2.1.1998 / 18:04:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1602
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1604
initializePrimitiveClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1605
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1606
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1607
    "/    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1608
    "/        (#byte    'B' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1609
    "/        (#short   'S' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1610
    "/        (#int     'I' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1611
    "/        (#long    'J' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1612
    "/        (#boolean 'Z' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1613
    "/        (#char    'C' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1614
    "/        (#float   'F' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1615
    "/        (#double  'D' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1616
    "/        (#void    'V' 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1617
    "/    ) triplesDo:[:nm :sig :len |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1618
    "/        |jClass classInst|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1619
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1620
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1621
    "/        "/ create a javaClass for it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1622
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1623
    "/        jClass := Java at:'java.lang.Class'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1624
    "/        jClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1625
    "/            classInst := jClass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1626
    "/            JavaClasses at:nm put:classInst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1627
    "/            JavaClasses at:classInst put:nm.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1628
    "/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1629
    "/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1630
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1631
     self initializePrimitiveClasses"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1633
    "Modified: / 22-10-1998 / 01:56:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1634
    "Modified: / 20-12-2010 / 23:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1635
    "Modified: / 28-01-2011 / 14:57:38 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1636
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1638
initializeReflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1640
    Reflection := JavaVM::Reflection for: self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1642
    "Created: / 21-12-2010 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1643
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1645
initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1646
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1647
     being already loaded. (used with jdk < 1.2)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1649
    LibPath := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1650
                        '__builtIn__' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1651
                        '/usr/local/lib' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1652
                        '/usr/local/lib/java'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1653
                ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1655
    SimulatedLibs := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1656
                        '__builtIn__/net' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1657
                        '__builtIn__/awt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1658
                        '__builtIn__/tawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1659
                        '__builtIn__/winawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1660
                        '__builtIn__/jpeg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1661
                        '__builtIn__/mmedia'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1662
                        '__builtIn__/zip'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1663
                        '__builtIn__/math'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1664
                        '__builtIn__/sysresource'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1666
                        "/ KAVA ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1667
                        '__builtIn__/agent'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1669
                        "/ MS-java ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1670
                        '__builtIn__/msawt'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1671
                        '__builtIn__/javart'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1672
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1673
                        "/ 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1674
                        '__builtIn__/jpeg_sun' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1675
                      ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1677
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1678
     self initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1679
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1680
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1681
    "Created: / 4.1.1998 / 19:05:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1682
    "Modified: / 17.11.1998 / 23:53:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1683
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1685
initializeSimulatedNativeLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1686
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1687
     being already loaded (used with jdk >= 1.2)"
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1688
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1689
    OperatingSystem isUNIXlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1690
        SimulatedNativeLibs := #( 'libawt.so' 'libnet.so' 'libcmm.so' 'libzip.so' 'libnio.so'
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1691
                                  'libmanagement.so'        "/ Management Beans - req'd by Tomcat
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1692
                                  'libjpeg.so' 'liblcms.so' "/ Some UI stuff - req'd by Tomcat !!?!!
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1693
                                  'libfontmanager.so'       "/ req'd by java.text.Bidi
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1694
                                    ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1695
        ^ self.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1696
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1697
    OperatingSystem isMSWINDOWSlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1698
        SimulatedNativeLibs := #( 'awt.dll' 'net.dll' 'cmm.dll' 'zip.dll' 'nio.so'
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1699
                                  'management.dll'          "/ Management Beans - req'd by Tomcat
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1700
                                  'fontmanager.dll'          "/ req'd by java.text.Bidi
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1701
                                ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1702
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1703
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1704
    SimulatedNativeLibs := #().
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1705
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1706
    "
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1707
     self initializeSimulatedNativeLibs"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1709
    "Modified: / 27-01-1998 / 18:43:10 / cg"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1710
    "Modified: / 03-11-2011 / 19:00:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1711
    "Modified: / 21-12-2011 / 23:03:35 / jv"
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1712
    "Modified: / 12-05-2012 / 12:52:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1713
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1715
initializeSimulatedNativeMemory
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1716
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1717
    SimulatedNativeMemory := JavaNativeMemory new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1719
    "Created: / 07-12-2010 / 21:07:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1720
    "Modified: / 07-12-2010 / 23:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1721
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1722
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1723
initializeSystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1724
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1725
    | java_lang_ClassLoader |
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1726
    
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1727
    java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1728
    (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1729
        SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1730
    ].
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1731
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1732
    "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1733
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1734
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1735
initializeSystemPropertiesInto: props 
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1736
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1737
   | cpu cpu2 os |
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1738
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1739
    "/ use JAVA compatible cpu-name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1740
    cpu := OperatingSystem getCPUType.
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1741
    cpu2 := cpu.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1742
    cpu = 'i386' ifTrue: [ cpu := 'ix86' ].
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1743
    (OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1744
        cpu2 := 'amd64'    
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1745
    ].
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1746
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1747
    SimulatedOS notNil ifTrue: [ os := SimulatedOS ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1748
        os := OperatingSystem getOSType.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1749
        os := os asUppercaseFirst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1750
    ].
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1751
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1752
    props addPairsFrom:
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1753
        {
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1754
            'java.runtime.name'             . 'OpenJDK Runtime Environment' .
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1755
            'sun.boot.library.path'         . OperatingSystem isMSWINDOWSlike 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1756
                                                    ifTrue:[(Java release jreHome / 'bin' ) asString]
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1757
                                                    ifFalse:[(Java release jreHome / 'lib' / cpu2 ) asString].
1254
275b55df3c47 Cosmetics in properties
vranyj1
parents: 1253
diff changeset
  1758
            'java.vm.version'               . Smalltalk versionString .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1759
            'java.vm.vendor'                . 'eXept Software AG & SWING Research Group' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1760
            'java.vendor.url'               . 'http://www.exept.de & http://swing.fit.cvut.cz' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1761
            'path.separator'                .  OperatingSystem pathSeparator asString. 
1254
275b55df3c47 Cosmetics in properties
vranyj1
parents: 1253
diff changeset
  1762
            'java.vm.name'                  . 'Smalltalk/X' .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1763
            'file.encoding.pkg'             . 'sun.io' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1764
            'sun.java.launcher'             . 'SUN_STANDARD' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1765
            'user.country'                  . 'US' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1766
            'sun.os.patch.level'            . 'unknown' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1767
            'java.vm.specification.name'    . 'Java Virtual Machine Specification' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1768
            'user.dir'                      . Filename currentDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1769
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1770
            'java.awt.graphicsenv'          . 'sun.awt.X11GraphicsEnvironment' .
1260
vranyj1
parents: 1257
diff changeset
  1771
            'java.endorsed.dirs'            . (Java release jreHome / 'lib' / 'endorsed') asString. 
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1772
            'os.arch'                       . cpu .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1773
            'java.io.tmpdir'                . Filename tempDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1774
            'line.separator'                . Character cr asString .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1775
            'java.vm.specification.vendor' . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1776
            'os.name'                       . os .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1777
            'sun.jnu.encoding'              . 'UTF-8' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1778
            'java.library.path'             . self defaultJavaLibraryPath.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1779
            'java.specification.name'       . 'Java Platform API Specification' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1780
            'java.class.version'            . '50.0' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1781
            'sun.management.compiler'       . 'Smalltalk/X jinterpreter' .
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1782
            'os.version'                    . OperatingSystem isMSWINDOWSlike 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1783
                                                    ifTrue:[OperatingSystem getSystemInfo at: #release] 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1784
                                                    ifFalse:[OperatingSystem getSystemInfo at: #version].
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1785
            'user.home'                     . Filename homeDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1786
            'user.timezone'                 . '' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1787
            'java.awt.printerjob'           . 'sun.print.PSPrinterJob' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1788
            'file.encoding'                 . 'UTF-8' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1789
            'java.specification.version'    . '1.6' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1790
            'java.class.path'               . self defaultCLASSPATH.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1791
            'user.name'                     . OperatingSystem getLoginName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1792
            'java.vm.specification.version' . '1.0' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1793
            "'sun.java.command'            . 'SystemProperties' ."
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1794
            'java.home'                     . '/usr/lib/jvm/java-6-openjdk/jre' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1795
            'sun.arch.data.model'           . '32' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1796
            'user.language'                 . Smalltalk language .   
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1797
            'java.specification.vendor'     . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1798
            'java.vm.info'                  . 'Smalltalk/X 6.2.1' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1799
            'java.version'                  . '1.6' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1800
            'java.ext.dirs'                 . self defaultExtDirs .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1801
            'sun.boot.class.path'           . self defaultSunBootLibraryPath.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1802
            'java.vendor'                   . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1803
            'file.separator'                . Filename separatorString .
1260
vranyj1
parents: 1257
diff changeset
  1804
            'java.vendor.url.bug'           . 'https://swing.fit.cvut.cz/projects/stx-libjava/newticket' .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1805
            'sun.io.unicode.encoding'       . 'UnicodeLittle' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1806
            'sun.cpu.endian'                . 'little' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1807
            'sun.desktop'                   . 'gnome' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1808
            'sun.cpu.isalist'               . '' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1809
        }.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1810
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1811
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1812
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1813
    "/ props at:'user.dir'           put:(Filename currentDirectory pathName).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1814
    "/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
  1815
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1816
    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
  1817
    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
  1818
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1819
    "/ new with jdk 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1820
    "/ undocumented ?
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1821
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1822
    "/ 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
  1823
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1824
    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
  1825
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1826
    "/ 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
  1827
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1828
    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
  1829
    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
  1830
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1831
    "/ jws
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1832
    "/props at:'jws.home'             put:(self defaultJWSHome).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1833
    "/ new with jws 2.0 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1834
    "/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
  1835
    
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1836
    props at: 'stx.libjava.tomcat.dir'
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1837
        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
  1838
    
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  1839
"/    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
  1840
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1841
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1843
    "
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1844
     self initializeSystemPropertiesInto:(Dictionary new)"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1846
    "Created: / 03-01-1998 / 14:26:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1847
    "Modified: / 27-01-2000 / 02:20:18 / cg"
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1848
    "Modified (format): / 03-11-2011 / 12:40:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1849
    "Modified: / 12-12-2011 / 15:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1850
    "Modified: / 21-12-2011 / 23:05:11 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1851
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1853
initializeVM
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1854
1368
5f502e712403 Groovy language support and integration
vranyj1
parents: 1353
diff changeset
  1855
    "/Native code optimization is broken (for now), force-disable it"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  1856
    ObjectMemory javaNativeCodeOptimization: false.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1857
    
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1858
    "Java requires a huge stack. Change default to 4 MB."
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1859
    Process defaultMaximumStackSize: 1024 * 1024 * 4.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1860
    
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1861
    "Java Classes are huge and there is a (unfixed) bug in 2-phase oldspace
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1862
     compress, so try to avoid it by pre-allocating more oldspace."
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1863
    OldspaceIncreased ~~ true ifTrue:[
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1864
        ObjectMemory moreOldSpace: 16"MB"*(1024*1024).
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1865
        OldspaceIncreased := true.
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1866
    ].
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1867
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1868
    ClassRegistry := JavaClassRegistry for: self.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1869
    ClassLoaderQuerySignal := Query new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1870
    JavaObject autoload.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1871
    JavaContext autoload.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1872
    MonitorTrace ifNil: [ self initialize ].
1468
6024720925ec - JavaVM
vranyj1
parents: 1461
diff changeset
  1873
    MonitorTraceId := 0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1874
    self initializeAdditionalJavaProtocol.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1875
    self initializeJavaResources.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1876
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1877
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1878
    Java markAllClassesUninitialized.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1879
    ZipCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1880
    ZipEntryCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1881
    ZipInflaters := OrderedCollection new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1882
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1883
    "/ force re-resolving;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1884
    "/ otherwise, class-inits would not be called
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1885
    "/ by resolver ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1886
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1887
    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
  1888
    JavaMethod 
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1889
        allSubInstancesDo: [
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1890
            :m | 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1891
            m checked: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1892
            m code: nil.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1893
        ].
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1894
    ObjectMemory flushCaches.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1895
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1896
    "/ sigh - must flush inline caches.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1897
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1898
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1899
    self initializeSimulatedLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1900
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1901
    "/ < jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1902
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1903
    self initializeSimulatedNativeLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1904
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1905
    "/ >= jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1906
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1907
    self initializeSimulatedNativeMemory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1908
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1909
    "/>  jdk 6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1910
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1911
    self initializeOpenFileTable.
907
9ab15562799b JavaVM: Initialization fix
vranyj1
parents: 906
diff changeset
  1912
    self initializeReflection.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1913
    self initializeBaseClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1914
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1915
    Java initSystemClass.
1250
3904fc7212b4 forgotten methods :)
hlopkmar
parents: 1249
diff changeset
  1916
    Java initializeCurrentThread.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1917
    self initializeSystemClassLoader.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1918
    ObjectMemory addDependent: self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1919
    StartupTime := OperatingSystem getOSTime.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1920
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1921
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1922
     JavaVM initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1923
     JavaVM initializeVM."
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1924
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1925
    "Created: / 03-01-1998 / 21:29:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1926
    "Modified: / 14-12-1999 / 18:58:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1927
    "Modified: / 15-10-2010 / 15:27:45 / Jan Kurs <kurs.jan@post.cz>"
1381
145a1ff31ee8 poor attempt to implement mcompile on javaMethod
hlopkmar
parents: 1377
diff changeset
  1928
    "Modified: / 24-02-2012 / 13:59:29 / Marcel Hlopko <hlopik@gmail.com>"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  1929
    "Modified: / 24-02-2012 / 14:37:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1468
6024720925ec - JavaVM
vranyj1
parents: 1461
diff changeset
  1930
    "Modified: / 11-04-2012 / 23:01:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1931
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1933
initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1934
    |uClass updater p|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1936
    uClass := JAVA::sun::awt::ScreenUpdater.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1937
    uClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1938
        updater := uClass instVarNamed:'updater'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1939
        updater notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1940
            p := self stProcessForJavaThread:updater
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1941
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1942
        (updater isNil or:[p isNil or:[p isDead]]) isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1943
            self initializeVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1944
            ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1945
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1946
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1948
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1949
        self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1950
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1951
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1952
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1953
     JavaVM initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1954
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1956
    "Created: / 15.1.1998 / 17:32:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1957
    "Modified: / 24.12.1999 / 02:18:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1958
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1959
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1960
reboot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1961
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1962
    Java flushAllJavaResources.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1963
    self boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1964
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1965
    "Created: / 21-02-2012 / 18:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1966
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1967
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1968
reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1969
    |classesToInit|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1971
    self releaseAllJavaResources.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1973
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1975
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1976
    Java markAllClassesUninitialized.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1977
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1978
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1980
    classesToInit := JavaClass orderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1981
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1982
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1983
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1984
"/    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1986
    classesToInit do:[:jClass |
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1987
        jClass classInit
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1988
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1989
    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1990
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1991
    "Created: / 12-11-1998 / 15:37:52 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1992
    "Modified: / 17-11-1998 / 16:10:11 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  1993
    "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
  1994
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1996
reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1997
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1998
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1999
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2000
    (JavaEventQueueThread isNil or:[JavaEventQueueThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2001
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2002
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2003
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2004
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2005
     JavaVM reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2006
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2008
    "Created: / 24.11.1998 / 15:45:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2009
    "Modified: / 24.12.1999 / 02:36:41 / cg"
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
releaseAllJavaResources
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2013
    self deinitialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2014
    FirstWindowCreationSemaphore := Semaphore new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2015
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2016
    LoadedLibs := nil.
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2017
    LoadedNativeLibs := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2018
    ImageStretchCache := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2019
    LastGraphics := LastGC := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2020
    SimulatedNativeMemory := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2021
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2022
    self terminateAllThreads.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2023
    "/self releaseAllMonitors.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2024
    self releaseAllWindows.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2025
    self releaseAllStreams.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2026
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2027
    "
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2028
     JavaVM releaseAllJavaResources"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2030
    "Created: / 07-01-1998 / 22:49:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2031
    "Modified: / 24-12-1999 / 02:33:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2032
    "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
  2033
    "Modified: / 16-11-2011 / 20:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2034
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2036
releaseAllMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2037
    LockTable := WeakIdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2038
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2039
    LockTableAccess name: 'JavaVM lock table access mutex'.
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2040
    EnteredMonitorsPerProcess notNil ifTrue: [
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2041
        EnteredMonitorsPerProcess 
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2042
            keysAndValuesDo: [:p :value | value size > 0 ifTrue: [ self breakPoint: #mh ] ]
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2043
    ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2044
    self releaseLeftOverMonitors.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2045
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2046
        log: 'Clearing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2047
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2048
        facility: #JVM.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2049
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2050
    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2051
    log: 'Clearing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2052
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2053
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2054
        EnteredMonitorsPerProcess := IdentityDictionary new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2055
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2056
    "
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2057
     JavaVM releaseAllMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2059
    "Created: / 02-01-1998 / 18:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2060
    "Modified: / 07-01-1998 / 22:58:10 / cg"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2061
    "Modified: / 17-11-2011 / 17:00:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2062
    "Modified: / 13-04-2012 / 00:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2063
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2065
releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2066
    OpenFileTable notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2067
	OpenFileTable do:[:aStream |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2068
	    aStream notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2069
		aStream ~~ Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2070
		    aStream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2071
			aStream ~~ Stderr ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2072
			    aStream ~~ JavaConsoleStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2073
				aStream isExternalStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2074
				    aStream shutDown
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2075
				]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2076
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2077
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2078
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2079
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2080
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2081
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2082
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2083
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2085
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2086
     JavaVM releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2087
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2089
    "Created: / 7.1.1998 / 22:57:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2090
    "Modified: / 4.2.1998 / 19:53:11 / 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
releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2094
    KnownWindows notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2095
	KnownWindows do:[:aView |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2096
	    aView destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2097
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2098
	KnownWindows := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2099
    ]
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
     self releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2103
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2105
    "Created: / 7.1.1998 / 22:58:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2106
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2108
releaseLeftOverMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2109
    "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
  2110
    
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2111
    | deadProcesses |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2112
    deadProcesses := IdentitySet new.
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2113
    EnteredMonitorsPerProcess notNil ifTrue: [
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2114
        EnteredMonitorsPerProcess keysAndValuesDo: [
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2115
            :p :monitors | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2116
            p isDead ifTrue: [
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2117
 
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2118
                monitors do: [
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2119
                    :mon | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2120
                    Logger 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2121
                        log: 'release leftover monitor ...'
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2122
                        severity: #info
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2123
                        facility: 'JVM'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2124
                    mon release
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2125
                ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2126
                deadProcesses add: p.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2127
            ]
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2128
        ].
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2129
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2130
    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
  2131
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2132
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2133
     JavaVM releaseLeftOverMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2134
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2135
    "Created: / 08-01-1998 / 17:29:26 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2136
    "Modified: / 14-09-2011 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2137
    "Modified: / 29-11-2011 / 14:26:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2138
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2140
systemProperties
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2141
    |props|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2143
    props := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2144
    self initializeSystemPropertiesInto:props.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2145
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2146
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2147
    "Created: / 3.1.1998 / 14:25:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2148
    "Modified: / 3.1.1998 / 14:32:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2149
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2151
terminateAllThreads
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2152
    Java terminateAllThreads.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2153
    JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2154
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2155
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2156
    "Created: / 8.1.1998 / 17:43:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2157
    "Modified: / 24.12.1999 / 02:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2158
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2160
update:something with:aParameter from:changedObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2161
    something == #returnFromSnapshot ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2162
"/         self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2163
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2165
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2166
     JavaVM initializeVM
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
    "Created: / 9.1.1998 / 10:30:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2170
    "Modified: / 6.11.1998 / 00:40:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2171
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2172
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2173
!JavaVM class methodsFor:'Signal constants'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2175
badMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2176
    ^ BadMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2178
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2179
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2180
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2181
callHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2182
    ^ CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2184
    "Created: / 2.1.1998 / 18:07:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2185
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2186
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2187
classLoaderQuerySignal
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2188
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2189
    <resource: #obsolete>
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2190
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2191
    self breakPoint: #jv.
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2192
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2193
    ^JavaClassReader classLoaderQuerySignal
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2194
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2195
    "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
  2196
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2197
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2198
internalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2199
    ^ InternalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2200
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2201
    "Created: / 2.1.1998 / 18:07:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2202
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2204
javaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2205
    "^ JavaExceptionSignal"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2206
    ^JavaError
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2208
    "Created: / 02-01-1998 / 18:05:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2209
    "Modified: / 01-03-2011 / 21:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2210
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2211
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2212
privilegedAccessQuery
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2213
    ^ JavaPrivilegedAccessQuery.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2214
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2215
    "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
  2216
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2217
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2218
stdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2219
    ^ StdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2221
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2222
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2224
unhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2225
    ^ UnhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2227
    "Created: / 2.1.1998 / 18:05:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2228
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2230
unimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2231
    ^ UnimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2232
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2233
    "Created: / 2.1.1998 / 18:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2234
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2235
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2236
unimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2237
    ^ UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2239
    "Created: / 2.1.1998 / 18:06:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2240
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2242
!JavaVM class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2243
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2244
addClass:aJavaClass definedBy:aJavaClassLoader 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2245
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2246
    self assert: aJavaClass classLoader == aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2247
    ^ ClassRegistry registerClass:aJavaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2248
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2249
    "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
  2250
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2251
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2252
addSelector:newSelector withMethod:newMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2253
    super addSelector:newSelector withMethod:newMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2254
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2255
    "/JavaNativeMethod may not be loaded..."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2256
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2257
    (Smalltalk at:#JavaNativeMethod) 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2258
        ifNotNil:[JavaNativeMethod flushAllCachedNativeMethods].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2260
    "Created: / 24-12-1999 / 03:12:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2261
    "Modified: / 02-02-2011 / 04:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2262
    "Modified: / 02-02-2011 / 23:38:08 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2265
assertionsEnabled: aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2267
    AssertionsEnabled := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2269
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2270
        JavaVM assertionsEnabled: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2271
        JavaVM assertionsEnabled: false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2272
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2273
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2274
    "Created: / 24-11-2010 / 09:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2275
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2276
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2277
classRegistry
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2278
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2279
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2280
    "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
  2281
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2282
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2283
extClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2284
    ^ 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
  2285
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2286
    "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
  2287
    "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
  2288
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2289
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2290
finalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2291
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2292
    ^FinalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2293
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2294
    "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
  2295
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2296
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2297
finalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2298
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2299
    ^FinalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2300
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2301
    "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
  2302
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2303
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2304
javaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2305
     ^ JavaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2307
    "Created: / 24.12.1999 / 02:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2308
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2309
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2310
javaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2311
     ^ JavaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2312
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2313
    "Created: / 8.1.1999 / 17:05:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2314
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2315
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2316
javaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2317
     ^ JavaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2319
    "Created: / 8.1.1999 / 17:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2320
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2322
reflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2323
    ^ Reflection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2325
    "Created: / 28-01-2011 / 15:09:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2326
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2327
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2328
registry
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2329
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2330
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2331
    "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
  2332
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2333
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2334
systemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2335
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2336
    ^SystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2337
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2338
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2339
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2340
1185
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2341
threadInterrupts
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2342
threadInterrupts isNil ifTrue: [threadInterrupts := WeakIdentityDictionary new].
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2343
^threadInterrupts.
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2344
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2345
    "Created: / 30-11-2011 / 11:44:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2346
!
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
  2347
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2348
useSmalltalkInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2349
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2350
    JavaMethod makeMetaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2352
    "Created: / 23-02-2011 / 12:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2353
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2355
useVMInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2357
    JavaMethod makeJavaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2359
    "Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2360
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2361
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2362
!JavaVM class methodsFor:'class access'!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2363
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2364
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2365
    ^self reflection arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2366
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2367
    "Created: / 05-07-2012 / 23:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2368
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2369
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2370
at: aString 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2371
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2372
    ^ ClassRegistry classNamed: aString asInternalJavaClassName.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2373
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2374
    "Modified (comment): / 21-10-2011 / 12:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2375
    "Modified: / 23-10-2011 / 12:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2376
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2377
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2378
at: aString put: aJavaClass 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2379
    self breakPoint: #mh.
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2380
    self breakPoint: #jv.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2381
    "dont use me anymore"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2382
    ^ ClassRegistry registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2383
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2384
    "Modified (comment): / 21-10-2011 / 12:14:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2385
    "Modified: / 23-10-2011 / 11:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2386
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2387
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2388
classForName: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2389
    "load class from registry - load using classLoader from query or JavaClassReader if absent"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2390
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2391
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2392
    ^ 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
  2393
        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
  2394
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  2395
    "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
  2396
    "Modified: / 02-11-2011 / 16:33:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2397
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2398
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2399
classForName: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2400
    "load class from registry - load using given classLoader if not nil"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2401
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2402
    | result |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2403
    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
  2404
                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
  2405
                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
  2406
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2407
                    | 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
  2408
                    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
  2409
                    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
  2410
                        "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
  2411
                        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
  2412
                        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
  2413
                            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
  2414
                        class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2415
                    ] ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2416
                        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
  2417
                            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
  2418
                                    , className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2419
                        (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
  2420
                            "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
  2421
                            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
  2422
                            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
  2423
                                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
  2424
                                        , ' 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
  2425
                            class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2426
                        ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2427
                            (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
  2428
                                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
  2429
                                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
  2430
                                    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
  2431
                                            , ' 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
  2432
                                class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2433
                            ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2434
                                "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
  2435
                                 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
  2436
                                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
  2437
                                    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
  2438
                                        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
  2439
                                    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
  2440
                                ] 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
  2441
                                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
  2442
                                            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
  2443
                                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
  2444
                                    Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2445
                                        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
  2446
                                                , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2447
                                        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
  2448
                                        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
  2449
                                    nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2450
                                ] 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
  2451
                            ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2452
                        ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2453
                    ]
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2454
                ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2455
    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
  2456
        Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2457
            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
  2458
            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
  2459
            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
  2460
    ] 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
  2461
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2462
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2463
    "Created: / 21-10-2011 / 12:01:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2464
    "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
  2465
    "Modified: / 02-11-2011 / 16:49:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2466
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2467
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2468
classForName: className definedBy: classLoader ifAbsentPut: aBlock 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2469
    "load class from registry - if absent evaluate given block to get loaded class"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2470
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2471
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2472
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2473
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2474
    ].
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2475
    result := ClassRegistry 
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2476
                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
  2477
                loader: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2478
                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
  2479
    result notNil ifTrue: [
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2480
        result := self makeArrayOf: result asDescribedBy: className.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2481
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2482
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2483
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2484
    "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
  2485
    "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
  2486
    "Modified (format): / 02-11-2011 / 16:09:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2487
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2488
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2489
classNamed: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2490
    "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
  2491
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2492
    ^ self classNamed: className definedBy: JavaClassReader classLoaderQuerySignal query.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2493
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2494
    "Modified: / 21-10-2011 / 12:09:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2495
    "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
  2496
    "Modified: / 28-10-2011 / 22:12:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2497
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2498
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2499
classNamed: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2500
    "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
  2501
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2502
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2503
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2504
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2505
    ].
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2506
    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
  2507
                classForName: className asSlashedJavaClassName
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2508
                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
  2509
                ifAbsent: [ ^ nil ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2510
    ^ self makeArrayOf: result asDescribedBy: className.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2511
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2512
    "Created: / 21-10-2011 / 11:58:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2513
    "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
  2514
    "Modified: / 01-11-2011 / 15:36:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2515
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2516
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2517
loadClassesIn: directory 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2518
"load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2519
The argument is string containing the name of the directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2520
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2521
Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2522
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2523
^ self loadClassesIn: directory matching: '*'.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2524
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2525
    "Modified: / 11-06-2011 / 13:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2526
    "Created: / 21-10-2011 / 12:40:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2527
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2528
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2529
loadClassesIn: directory matching: pattern 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2530
    "load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2531
     The arguments are a string containing the name of the directory
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2532
     and a class name pattern. Only classes matching the pattern are loaded.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2533
     class names are matched using String>>matches:.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2534
     ALL CLASSES ARE INSTALLED!!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2535
     Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2536
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2537
    | dir  dirString  className  loadedClasses |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2538
    dir := directory asFilename asAbsoluteFilename.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2539
    loadedClasses := Set new.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2540
    Java addToClassPath: dir pathName.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2541
    JavaClassReader classLoaderQuerySignal answer: SystemClassLoader do:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2542
    
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2543
    dir 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2544
        recursiveDirectoryContentsAsFilenamesDo: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2545
            :filename | 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2546
            (filename isRegularFile and: [ filename suffix = #class ]) ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2547
                dirString := dir pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2548
                className := filename withoutSuffix pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2549
                className := className subString: dirString size + 2 to: className size.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2550
                className := className copyReplaceAll: (Filename separator) with: $..
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2551
                (className matches: pattern) ifTrue: [
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2552
                    (self classNamed: className) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2553
                        loadedClasses add: (self classForName:className).
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2554
                    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2555
                ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2556
            ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2557
        ].
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2558
    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2559
    ^ loadedClasses.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2560
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2561
    "Modified: / 21-10-2011 / 12:52:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2562
    "Modified: / 30-10-2011 / 14:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2563
! !
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2564
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2565
!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
  2566
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2567
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
  2568
    | 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
  2569
    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
  2570
    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
  2571
        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
  2572
    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
  2573
                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
  2574
                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
  2575
    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
  2576
        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
  2577
                , ' 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
  2578
                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
  2579
                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
  2580
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2581
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2582
    "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
  2583
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2584
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2585
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
  2586
    | class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2587
    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
  2588
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2589
            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
  2590
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2591
    ^ class
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2592
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2593
    "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
  2594
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2595
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2596
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
  2597
    | 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
  2598
    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
  2599
                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
  2600
                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
  2601
    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
  2602
    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
  2603
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2604
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2605
    "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
  2606
! !
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2607
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2608
!JavaVM class methodsFor:'debugging support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2609
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2610
disableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2611
    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
  2612
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2613
    "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
  2614
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2615
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2616
enableMonitorTrace
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2617
    MonitorTrace := true.
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2618
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2619
    "Created: / 22-11-2011 / 10:29:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2620
    "Modified (format): / 07-04-2012 / 08:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2621
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2622
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2623
exceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2624
    ^ ExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2626
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2629
exceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2630
    ExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2632
    "Created: / 27.1.1999 / 20:15:00 / 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
exceptionDebugPatterns
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2637
    ^ ExceptionDebugPatterns
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2638
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2639
    ExceptionDebug must be set in order to ExceptionDebugPatterns work
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2640
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2641
    ExceptionDebug := true.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  2642
    ExceptionDebug := false.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2643
    ExceptionDebugPatterns removeAll.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2644
    ExceptionDebugPatterns add: 'java/lang/SecurityException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2645
    ExceptionDebugPatterns add: 'java/net/ConnectException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2646
    ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  2647
    ExceptionDebugPatterns add: 'java/lang/IllegalAccessException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2648
    ExceptionDebugPatterns add: 'java/lang/ClassNotFoundException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2649
    ExceptionDebugPatterns add: 'java/io/IOException'.
1387
4c609318f0e5 - Improvements in GroovyCompiler (error handling)
vranyj1
parents: 1384
diff changeset
  2650
    ExceptionDebugPatterns add: 'java/io/FileNotFoundException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2651
    ExceptionDebugPatterns add: 'java/io/EOFException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2652
    ExceptionDebugPatterns add: 'java/lang/NoSuchMethodException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2653
    ExceptionDebugPatterns add: 'java/lang/ArrayIndexOutOfBoundsException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2654
    ExceptionDebugPatterns add: 'java/lang/IllegalMonitorStateException'.
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2655
    ExceptionDebugPatterns add: 'org/xml/sax/SAXParseException'.
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2656
    ExceptionDebugPatterns add: 'org/apache/xerces/xni/parser/XMLParseException'.
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2657
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2658
    ExceptionDebug := true.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2659
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2661
    "Created: / 25-02-2011 / 08:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2662
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2664
!JavaVM class methodsFor:'defaults'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2666
audioEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2667
    ^ NoAudio not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2669
    "Created: / 18.7.1998 / 22:31:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2670
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2672
audioEnabled:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2673
    NoAudio := aBoolean not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2675
    "Created: / 18.7.1998 / 22:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2676
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2677
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2678
defaultCLASSPATH
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2679
    |s|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2680
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2681
    s := '' writeStream.
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2682
    Java classPath 
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2683
        do:[:p | s nextPutAll:p ]
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2684
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2686
    ^ s contents
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2688
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2689
     self defaultCLASSPATH      
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2690
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2691
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2692
    "Created: / 03-01-1998 / 14:27:21 / cg"
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2693
    "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
  2694
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2695
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2696
defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2697
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2698
    ^String streamContents:[:s|
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2699
        Java javaExtDirs do:[:dir|
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2700
            s nextPutAll: dir pathName.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2701
        ] separatedBy:[
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2702
            s nextPut: OperatingSystem pathSeparator.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2703
        ]
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2704
    ]
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2705
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2706
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2707
    JavaVM defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2708
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2709
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2710
    "Created: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2711
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2712
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2713
defaultHotJavaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2714
    ^ '/usr/local/java/hotjava'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2716
    "Modified: / 5.8.1997 / 04:13:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2717
    "Created: / 3.1.1998 / 14:27:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2718
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2719
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2720
defaultJAVAHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2721
    ^ Java javaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2723
    "Modified: / 6.8.1997 / 00:54:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2724
    "Created: / 3.1.1998 / 14:27:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2725
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2727
defaultJWSHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2728
    '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS' asFilename exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2729
	^ '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2730
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2732
    ^ '/usr/local/java/JWS'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2734
    "Created: / 3.1.1998 / 14:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2735
    "Modified: / 3.12.1998 / 14:54:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2736
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2738
defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2740
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2741
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2742
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2743
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2744
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2745
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2746
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2747
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2748
            add: Java release javaHome asFilename / 'jre' / 'bin' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2749
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2750
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2751
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2752
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2753
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2755
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2756
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2757
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2758
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2759
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2761
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2762
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2763
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2765
    "Created: / 10-12-2010 / 14:09:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2766
    "Modified: / 01-04-2011 / 18:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2767
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2769
defaultSunBootLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2770
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2771
    |s|
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2772
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2773
    s := '' writeStream.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2774
    Java release classPath 
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2775
        do:[:p | s nextPutAll:p ]
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2776
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2777
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2778
    ^ s contents    
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2779
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2780
    "    
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2781
        JavaVM defaultSunBootLibraryPath
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2782
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2784
    "Created: / 10-12-2010 / 14:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2785
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2787
defaultWindowingToolKit
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2788
    "/ prefer the windows toolkit ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2789
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2790
    (self classForName: 'sun.awt.windows.WToolkit') notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2791
        ^ 'sun.awt.windows.WToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2792
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2793
    (Java classForName: 'sun.awt.motif.MToolkit') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2794
        self halt: 'MotifToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2795
        ^ 'sun.awt.motif.MToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2796
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2797
    self halt: 'TinyToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2798
    ^ 'sun.awt.tiny.TinyToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2799
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2800
    "/    ^ 'sun.awt.win32.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2801
    "/    ^ 'sun.awt.motif.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2802
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2803
     self defaultWindowingToolKit"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2804
    "Created: / 3.1.1998 / 14:27:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2805
    "Modified: / 27.1.1998 / 21:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2806
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2807
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2808
fileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2809
    ^ FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2811
    "Created: / 27.1.1999 / 18:55:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2812
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2814
fileAccessTrace:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2815
    FileAccessTrace := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2816
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2817
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2818
    "Modified: / 27.1.1999 / 18:55:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2819
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2821
fileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2822
    ^ FileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2823
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2824
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2825
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2826
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2827
fileOpenConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2828
    FileOpenConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2830
    "Created: / 19.10.1998 / 16:01:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2831
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2833
javaConsole:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2834
    JavaConsoleStream := aStream
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
     JavaVM javaConsole:Transcript
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2838
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2840
    "Modified: / 6.8.1997 / 00:34:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2841
    "Created: / 3.1.1998 / 14:27:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2842
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2843
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2844
javaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2845
    ^ JavaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2846
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2847
    "Created: / 3.1.1998 / 14:32:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2848
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2850
nullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2851
    ^ NullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2853
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2854
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2856
nullPointerExceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2857
    NullPointerExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2858
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2859
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2860
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2862
socketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2863
    ^ SocketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2864
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2865
    "Created: / 19.10.1998 / 16:02:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2866
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2867
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2868
socketConnectConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2869
    SocketConnectConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2871
    "Created: / 19.10.1998 / 16:02:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2872
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2873
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2874
!JavaVM class methodsFor:'eager resolving'!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2875
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2876
disableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2877
    EagerResolvingEnabled := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2878
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2879
    "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
  2880
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2881
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2882
eagerResolvingEnabled
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2883
    ^ EagerResolvingEnabled.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2884
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2885
    "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
  2886
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2887
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2888
enableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2889
     EagerResolvingEnabled := true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2890
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2891
    "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
  2892
! !
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2893
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2894
!JavaVM class methodsFor:'fileIO'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2896
addOpenFile:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2897
    OpenFileTable add:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2898
    ^ OpenFileTable size - 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2900
    "Created: / 2.1.1998 / 18:32:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2901
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2903
getOpenFileAt:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2904
    ^ OpenFileTable at:idx+1 ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2906
    "Created: / 2.1.1998 / 18:28:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2907
    "Modified: / 2.1.1998 / 18:33:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2908
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2910
setOpenFile:aStream at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2911
    OpenFileTable size < (idx+1) ifTrue:[
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2912
        OpenFileTable grow:idx+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2913
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2914
    OpenFileTable at:idx+1 put:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2915
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2916
"/    Do not shrink OpenFileTable now, make debugging easier
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2917
"/    aStream isNil ifTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2918
"/        [ OpenFileTable last isNil ] whileTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2919
"/            OpenFileTable removeLast.            
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2920
"/        ]
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2921
"/    ].
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2922
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2923
    "Modified: / 02-01-1998 / 18:33:21 / cg"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2924
    "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
  2925
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2927
!JavaVM class methodsFor:'helpers'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2928
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2929
canCast: s to: t 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2930
    "Helper for _CHECKCAST:_:"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2931
    
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2932
    | sc  tc |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2933
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2934
    "Not specified in JVM spec, sigh"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2935
    s isJavaPrimitiveType ifTrue: [
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  2936
        "FIXME"
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  2937
        ^ s == t or:[(s isSubclassOf: t) or:[t isSubclassOf: s]]
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2938
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2939
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2940
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2941
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2942
     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
  2943
     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
  2944
     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
  2945
     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
  2946
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2947
     - If S is an ordinary (nonarray) class, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2948
     - 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
  2949
     of T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2950
     - 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
  2951
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2952
    (s isJavaArrayClass not and: [ s isInterface not ]) ifTrue: [
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2953
        ^ (s includesBehavior: t).
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2954
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2955
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2956
     - If S is an interface type, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2957
     - 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
  2958
     - 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
  2959
     superinterface of S.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2960
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2961
    s isInterface ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2962
        ^ t isInterface not 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2963
            ifTrue: [ t == (self classForName: 'java.lang.Object') ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2964
            ifFalse: [ s includesBehavior: t ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2965
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2966
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2967
     - 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
  2968
     ponents of type SC , then:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2969
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2970
    self assert: s isJavaArrayClass description: 'S should be array type'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2971
    sc := s javaComponentClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2972
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2973
     - 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
  2974
    "
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  2975
    t isJavaClassType ifTrue: [ ^ t == (self classForName: 'java.lang.Object') ].
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2976
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2977
     - 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
  2978
     then one of the following must be true:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2979
     - TC and SC are the same primitive type.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2980
     - 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
  2981
     recursive application of these rules.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2982
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2983
    t isJavaArrayClass ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2984
        tc := t javaComponentClass.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2985
        ^ tc isJavaPrimitiveType 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2986
            ifTrue: [ tc == sc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2987
            ifFalse: [ self canCast: sc to: tc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2988
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2989
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2990
     - 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
  2991
     by arrays (JLS3 4.10.3).
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2992
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2993
    ((t name == #'java/lang/Cloneable') 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2994
        or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  2995
    ^ false
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2996
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2997
    "Modified: / 09-01-1999 / 00:45:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2998
    "Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2999
    "Modified: / 21-10-2011 / 13:50:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  3000
    "Modified: / 24-02-2012 / 16:34:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3001
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3002
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3003
invoke: jmethod receiver: obj arguments: args context: context "of the native method" constructor: isConstructor
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3004
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3005
    "Common helper for invoking methods and ctors. Performs
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3006
     (type) checks and unboxing. Return (possibly boxed) return value."
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3007
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3008
    | method parameterTypes bargs bargss retval retcls bi executionEx |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3009
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3010
    method := self reflection methodForJavaConstructorObject: jmethod.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3011
    parameterTypes := jmethod instVarNamed: #parameterTypes.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3012
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3013
    (obj isNil and:[method isStatic not]) ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3014
        self throwNullPointerException.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3015
        ^nil.            
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3016
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3017
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3018
    "Possibly box/unbox arguments"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3019
    args notEmptyOrNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3020
        bargs := Array new: (bargss := method numArgs).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3021
        bi := 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3022
        1 to: args size do:[:i|
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3023
            | cls |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3024
            bi > bargss ifTrue:[
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3025
"/                self breakPoint: #jv.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3026
                self throwIllegalArgumentException: 'passed more arguments than expected'.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3027
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3028
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3029
            cls := self classForJavaClassObject: (parameterTypes at: i).
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3030
            cls isJavaPrimitiveType ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3031
                bargs at: bi put: (cls javaUnbox: (args at:i) onError:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3032
"/                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3033
                    self throwIllegalArgumentException:'illegal unbox'. ^nil
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3034
                ]).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3035
                (cls == LargeInteger or:[cls == Float]) ifTrue:[bi := bi + 1].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3036
            ] ifFalse:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  3037
                ((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
  3038
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3039
                    self throwIllegalArgumentException:'incomplatible argument types'. ^nil.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3040
                ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3041
                bargs at: bi put: (args at:i).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3042
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3043
            bi := bi + 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3044
       ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3045
        bi <= bargss ifTrue:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3046
"/             self breakPoint: #jv.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  3047
             self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3048
                              withMessage: 'not enough arguments'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3049
        ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3050
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3051
        bargs := #()
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3052
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3053
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3054
    "Check number of arguments"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3055
    method numArgs ~= bargs size ifTrue:[
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3056
        self throwIllegalArgumentException:'Invalid number of arguments'.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3057
        ^nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3058
    ].
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3059
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3060
    "Lookup the method here - hack, because of those stupid package private methods"
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3061
    method isStatic not ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3062
        method := JavaLookup instance
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3063
                    lookupMethodForSelector: method selector 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3064
                                 directedTo: obj class 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3065
                                        for: obj 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3066
                              withArguments: bargs 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3067
                                       from: context 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3068
                                        ilc: nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3069
        method isNil ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3070
            self throwIllegalArgumentException:'Message not understood - invalid class for ''this'''. 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3071
            ^nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3072
        ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3073
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3074
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3075
    "Fire the method"
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3076
    [
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3077
        method isStatic ifTrue:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3078
            retval := method valueWithReceiver: method javaClass arguments: bargs.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3079
        ] ifFalse:[
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3080
            retval := method valueWithReceiver: obj arguments: bargs.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3081
        ].
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3082
    ] on: (self classForName:'java.lang.Throwable') do:[:ex |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3083
        executionEx := ex.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3084
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3085
    executionEx notNil ifTrue:[
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3086
        self throwInvocationTargetException: 'An exception occured during invocation' target: executionEx.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3087
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3088
    ].
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3089
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
  3090
    isConstructor ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3091
        retcls := jmethod instVarNamed: #returnType.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3092
        retcls notNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3093
            retcls := self classForJavaClassObject: retcls.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3094
            retcls ~~ UndefinedObject ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3095
                retval := retcls javaBox: retval.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3096
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3097
        ].
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3098
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3099
    ^retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3100
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3101
    "Created: / 05-07-2012 / 23:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3102
!
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3103
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3104
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3105
    self breakPoint:#mh info:'refactor my sender to use reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3106
    ^ self reflection javaStringObjectForString:string interned:false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3108
    "Created: / 22-11-2010 / 16:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3109
    "Modified: / 09-02-2011 / 00:47:49 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3112
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
  3113
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3114
    ^self reflection javaStringObjectForString:string interned:intern.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3115
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3116
    "Created: / 22-11-2010 / 16:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3117
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3118
    "Modified: / 09-02-2011 / 01:04:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3119
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3120
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3121
javaThreadForSTProcess: stProcess 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3122
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3123
    result := Java threadForStProcess: stProcess ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3124
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3125
    ^ result.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3126
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3127
    "Modified: / 26-08-1997 / 19:56:31 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3128
    "Created: / 03-01-1998 / 01:53:41 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3129
    "Modified: / 09-12-2011 / 13:12:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3130
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3131
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3132
makeArrayOf: loadedJavaClass asDescribedBy: className 
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3133
    | arrayClass  dimensions |
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3134
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3135
    arrayClass := loadedJavaClass.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3136
    dimensions := className occurrencesOf: $[.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3137
        arrayClass isJavaArrayClass ifTrue: [
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3138
        "is already array (primitive arrays case, like ByteArray etc)"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3139
        dimensions := dimensions - 1.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3140
    ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3141
    dimensions timesRepeat: [ arrayClass := arrayClass javaArrayClass. ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3142
        ^ arrayClass.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3143
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3144
    "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
  3145
    "Modified (format): / 23-10-2011 / 22:30:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3146
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3147
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3148
newThread: name 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3149
    | thread  threadClass  i |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3150
    threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3151
    thread := threadClass basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3152
    thread instVarNamed: 'name' put: (Java as_String: name).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3153
    thread instVarNamed: 'priority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3154
        put: (threadClass instVarNamed: 'NORM_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3155
    thread instVarNamed: 'single_step' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3156
    thread instVarNamed: 'daemon' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3157
    thread instVarNamed: 'stillborn' put: 0.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3158
    thread instVarNamed: 'threadStatus' put: 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3159
    thread instVarNamed: 'target' put: nil.
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3160
    thread instVarNamed: 'blockerLock'
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3161
        put: (JavaVM classForName: 'java.lang.Object') basicNew.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3162
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3163
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3164
    "/ that on was only temporarily present in JDK1.1.3 (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3165
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3166
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3167
    (i := thread class instVarOffsetOf: 'initial_stack_memory') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3168
        thread instVarAt: i put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3169
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3170
    thread instVarNamed: 'group' put: (self standardThreadGroup).
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3171
    threadClass classLoader isNil ifTrue: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3172
        thread instVarNamed: 'contextClassLoader' put: self systemClassLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3173
    ] ifFalse: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3174
        thread instVarNamed: 'contextClassLoader' put: threadClass classLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3175
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3176
    ^ thread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3177
1151
vranyj1
parents: 1150
diff changeset
  3178
    "Created: / 03-01-1998 / 01:47:30 / cg"
vranyj1
parents: 1150
diff changeset
  3179
    "Modified: / 27-01-1998 / 00:54:33 / cg"
vranyj1
parents: 1150
diff changeset
  3180
    "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
  3181
    "Modified: / 01-12-2011 / 17:43:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3182
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3183
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3184
stProcessForJavaThread: jThread 
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3185
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3186
    result := Java threadsAt: jThread ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3187
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3188
    ^ result.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3189
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3190
    "Created: / 02-01-1998 / 21:48:27 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3191
    "Modified: / 03-01-1998 / 01:53:55 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3192
    "Modified: / 09-12-2011 / 13:12:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3193
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3194
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3195
standardThreadGroup
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3196
    | standardGroup  threadClass |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3197
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3198
    StandardThreadGroup isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3199
        threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3200
        standardGroup := (self classForName: 'java.lang.ThreadGroup') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3201
        standardGroup instVarNamed: 'parent' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3202
        standardGroup instVarNamed: 'name' put: (Java as_String: 'main').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3203
        standardGroup instVarNamed: 'maxPriority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3204
            put: (threadClass instVarNamed: 'MAX_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3205
        standardGroup instVarNamed: 'destroyed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3206
        standardGroup instVarNamed: 'daemon' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3207
        (standardGroup class instVarOffsetOf: 'vmAllowSuspension') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3208
            standardGroup instVarNamed: 'vmAllowSuspension' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3209
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3210
        standardGroup instVarNamed: 'nthreads' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3211
        standardGroup instVarNamed: 'ngroups' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3212
        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
  3213
        StandardThreadGroup := standardGroup.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3214
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3215
    ^ StandardThreadGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3216
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3217
    "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
  3218
    "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
  3219
    "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
  3220
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3221
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3222
threadStart: nativeContext 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3223
    "start the thread"
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3224
    
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3225
    | jThread  jName  nm  stProcess  helper |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3226
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  3227
    self assert: (jThread instVarNamed: 'priority') > 0.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3228
    stProcess := JavaProcess for: (helper := JavaProcess newHelper)
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3229
                priority: (Processor activePriority).
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3230
    helper javaThreadObject: jThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3231
    helper javaProcess: stProcess.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3232
    jName := jThread instVarNamed: 'name'.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3233
    jName isString ifFalse: [ nm := Java as_ST_String: jName. ] ifTrue: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3234
        nm := jName
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3235
    ].
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3236
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3237
    "/ kludge - remember the ScreenUpdater ...
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3238
    
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3239
    nm = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3240
        nm = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3241
            (nm startsWith: 'AWT-EventQueue') ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3242
                JavaEventQueueThread := stProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3243
            ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3244
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3245
    ].
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3246
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3247
    "/ when that process terminates, wakup any waiters
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3248
    "/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
  3249
    "/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
  3250
    
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3251
    stProcess 
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3252
        addExitAction: [
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3253
            Logger 
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3254
                log: ('%1 is going to die, notifying all waiters and disabling waiting on its monitor' 
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3255
                        bindWith: jThread printString)
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3256
                severity: #debug
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3257
                facility: #JVM.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3258
            jThread instVarNamed: 'threadStatus' put: 0.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3259
            (self monitorFor: jThread) disableWait.
1194
9f910257b6e8 from now on joining thread does not block after threads death
hlopkmar
parents: 1193
diff changeset
  3260
            self acquireMonitorAndNotifyAll: jThread.
1195
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3261
        ].
378d34a28bd4 need more logging
hlopkmar
parents: 1194
diff changeset
  3262
    stProcess name: 'JAVA-' , nm.
1175
5575f3d296a5 one line change in threadStart makes join work smooooth :)
hlopkmar
parents: 1173
diff changeset
  3263
    stProcess restartable: true.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3264
    jThread instVarNamed: 'threadStatus' put: 1.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3265
    Java addThread: jThread for: stProcess.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3266
    stProcess resume.    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3267
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3269
    "Modified: / 24-12-1999 / 03:14:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3270
    "Created: / 14-12-2010 / 21:31:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3271
    "Modified: / 15-12-2010 / 11:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3272
    "Modified: / 09-12-2011 / 12:58:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3273
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3275
!JavaVM class methodsFor:'helpers - awt'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3277
commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3278
    |view x y width height ext menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3280
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3282
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3283
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3284
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3285
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3286
    ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3288
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3289
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3290
"/    ' extent: ' print. ext printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3291
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3292
	view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3293
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3294
	(view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3295
	or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3296
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3297
	    "/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3298
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3299
	    menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3300
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3301
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3302
		height := height + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3303
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3304
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3305
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3306
	    "/ to prevent a view from not being visible/closable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3307
	    "/ in case Java goes mad ..
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3309
	    (width < 30
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3310
	    or:[height < 10]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3311
		"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3312
		width := 30.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3313
		height := 20.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3314
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3315
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3317
	    view extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3318
	    (view isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3319
		view preferredExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3320
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3322
	    "/ adjust non-resizable views min/max
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3324
	    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3325
		view minExtent notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3326
		    view minExtent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3327
		    view maxExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3328
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3329
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3330
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3331
	    (view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3332
	    and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3333
		menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3334
		menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3335
		    "/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3336
		    y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3337
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3338
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3339
		"/ post a configuration event
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3340
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3341
		    'JAVA: configure: need event' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3342
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3343
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3344
	    (x isNil or:[y isNil]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3345
		Transcript showCR:'bad args to reshape'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3346
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3347
		view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3348
	    ]
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
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3352
    view isJavaView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3353
	view invalidate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3354
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3356
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3357
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3358
    "Created: / 4.1.1998 / 18:00:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3359
    "Modified: / 5.12.1998 / 13:34:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3360
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3362
createdWindowsView:aView for:aJavaPeer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3363
    "this is only sent with the sun.awt.windows toolkit"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3365
    aJavaPeer instVarNamed:'pData' put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3367
    JavaWindowGroup isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3368
	JavaWindowGroup := WindowGroup new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3369
	JavaWindowGroup isForModalSubview:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3370
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3371
    aView windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3372
    JavaWindowGroup addView:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3374
    KnownWindows isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3375
	KnownWindows := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3376
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3377
    KnownWindows at:aJavaPeer put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3379
    FirstWindowCreationSemaphore signalIf.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3381
"/'*** ' print. aJavaPeer print. ' -> ' print. aView printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3382
"/(aView isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3383
"/    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3384
"/].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3386
    "Created: / 4.1.1998 / 17:57:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3387
    "Modified: / 28.1.1998 / 22:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3388
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3390
gcForWGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3391
    |jGraphics gc orgX orgY trans tX tY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3393
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3394
    O_WGgraphics_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3395
	O_WGgraphics_pData := (jGraphics class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3396
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3397
    O_WGgraphics_originX isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3398
	O_WGgraphics_originX := (jGraphics class instVarOffsetOf:'originX').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3399
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3400
    O_WGgraphics_originY isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3401
	O_WGgraphics_originY := (jGraphics class instVarOffsetOf:'originY').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3402
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3403
    gc := jGraphics instVarAt:O_WGgraphics_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3405
    trans := gc translation.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3406
    tX := trans x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3407
    tY := trans y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3408
"/    tX := gc translationX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3409
"/    tY := gc translationY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3411
    orgX := jGraphics instVarAt:O_WGgraphics_originX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3412
    orgY := jGraphics instVarAt:O_WGgraphics_originY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3413
    ((orgX ~~ tX) or:[orgY ~~ tY]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3414
	gc translation:orgX@orgY
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3415
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3416
    ^ gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3417
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3418
    "Created: / 8.1.1998 / 00:16:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3419
    "Modified: / 23.12.1998 / 20:27:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3420
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3421
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3422
jPeerForView:aView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3423
    ^ KnownWindows keyAtValue:aView ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3425
    "Created: / 15.1.1998 / 13:48:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3426
    "Modified: / 15.1.1998 / 13:48:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3427
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3429
pReshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3430
    |jFramePeer view x y width height menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3432
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3433
    view := jFramePeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3435
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3436
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3437
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3438
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3439
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3440
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3441
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3442
"/    ' extent: ' print. width print. '/' print. height printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3444
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3445
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3446
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3448
    (view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3449
    or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3450
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3451
	"/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3452
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3453
	menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3454
	menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3455
	    "/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3456
	    height := height + menu height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3457
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3458
	view extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3459
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3460
	(view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3461
	and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3462
	    menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3463
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3464
		"/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3465
		y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3466
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3467
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3468
	view origin:x@y extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3469
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3471
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3473
    "Created: / 7.1.1998 / 21:47:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3474
    "Modified: / 5.12.1998 / 13:47:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3475
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3476
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3477
replacementFontFor:name style:styleNr size:size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3478
    |font family style|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3480
    style := 'roman'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3481
    styleNr = 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3482
        style := 'roman'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3483
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3485
    font := Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3486
    font notNil ifTrue:[^ font].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3488
    name = 'Dialog' ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3489
        family := 'helvetica'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3490
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3491
        family := 'courier'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3492
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3494
    ^ Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3495
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3497
topViewsMenu:view
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3498
    |idx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3500
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3501
	view subViews size > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3502
	    (idx := view subViews findFirst:[:v | v isMemberOf:MenuPanel]) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3503
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3504
		^ view subViews at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3505
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3506
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3507
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3508
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3509
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3510
    "Modified: / 4.8.1997 / 01:23:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3511
    "Created: / 4.1.1998 / 18:01:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3512
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3514
viewForWPeer:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3515
    |jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3516
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3517
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3519
    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3520
    O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3521
	O_FramePeer_pNativeWidget := (jPeer class instVarOffsetOf:'pNativeWidget').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3522
	O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3523
	    O_FramePeer_pNativeWidget := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3524
	    O_FramePeer_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3525
		O_FramePeer_pData := (jPeer class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3526
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3527
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3528
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3529
    O_FramePeer_pNativeWidget > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3530
	"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3531
	^ jPeer instVarAt:O_FramePeer_pNativeWidget.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3532
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3533
    ^ jPeer instVarAt:O_FramePeer_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3535
    "Modified: / 19.11.1998 / 01:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3536
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3538
!JavaVM class methodsFor:'helpers - exceptions'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3539
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3540
throwAbstractMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3541
    ^ 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
  3542
        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
  3543
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3544
    "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
  3545
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3546
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3547
throwArrayIndexOutOfBoundsException: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3548
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3549
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3550
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3551
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3552
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3554
    "Created: / 14.1.1998 / 21:36:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3555
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3556
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3557
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3558
throwArrayIndexOutOfBoundsException: theArray _: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3559
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3560
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3561
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3562
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3563
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3565
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3566
    "Created: / 8.1.1999 / 15:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3567
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3568
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3569
throwArrayStoreException:badArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3570
    ^ self
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3571
        throwExceptionClassName:'java.lang.ArrayStoreException'
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3572
         withMessage:('bad array store: ' , badArray class printString)
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3573
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3574
    "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
  3575
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3576
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3577
throwClassCastException
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3578
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
  3579
    
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3580
    ^ self throwExceptionClassName: 'java.lang.ClassCastException'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3581
        withMessage: 'cast failed'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3582
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3583
    "Modified: / 07-01-1998 / 15:25:35 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3584
    "Created: / 08-01-1999 / 18:55:31 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3585
    "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
  3586
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3587
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3588
throwClassFormatError
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3589
    ^ self throwClassFormatError: 'Invalid class format'
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3590
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3591
    "Created: / 04-01-1998 / 22:26:09 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3592
    "Modified: / 10-11-1998 / 13:20:31 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3593
    "Created: / 08-08-2011 / 17:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3594
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3595
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3596
throwClassFormatError: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3597
    ^ self 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3598
        throwExceptionClassName:'java.lang.ClassFormatError' 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3599
        withMessage: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3600
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3601
    "Created: / 04-01-1998 / 22:26:09 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3602
    "Modified: / 10-11-1998 / 13:20:31 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3603
    "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
  3604
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3605
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3606
throwClassNotFoundException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3607
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3608
	throwExceptionClassName:'java.lang.ClassNotFoundException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3609
	withMessage:'no such class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3610
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3611
    "Created: / 4.1.1998 / 22:25:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3612
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3613
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3614
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3615
throwClassNotFoundException: className 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3616
    ^ self throwExceptionClassName: 'java.lang.ClassNotFoundException'
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3617
        withMessage: 'no such class: ' , className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3619
    "Created: / 4.1.1998 / 22:26:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3620
    "Modified: / 10.11.1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3621
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3622
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3623
throwDivisionByZeroException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3624
    DivisionByZeroExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3625
	self halt:'division by zero'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3626
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3627
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3628
	throwExceptionClassName:'java.lang.ArithmeticException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3629
	withMessage:'division by zero'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3630
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3631
    "Created: / 8.1.1999 / 14:28:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3632
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3633
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3634
throwException: aJavaException 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3635
    <resource: #skipInDebuggersWalkBack>
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3636
    | con  jMsg  msg  exClass  srchCon  handlerContext  handlerPC  method  pc  hPC handler |
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3637
    ExceptionTrace ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3638
        | tmpMessage |
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3639
        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
  3640
        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
  3641
            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
  3642
        ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3643
        Logger 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3644
            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
  3645
                    , tmpMessage , ')'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3646
            severity: #debug
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3647
            facility: 'JVM'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3648
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3649
    ExceptionDebug ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3650
        "/        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
  3651
        (ExceptionDebugPatterns isNilOrEmptyCollection 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3652
            or: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3653
                ExceptionDebugPatterns 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3654
                    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
  3655
            ]) 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3656
                ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3657
                    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
  3658
                ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3659
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3660
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3661
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3662
    "/ search stack for a javaContext which handles that exception
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3663
    "/
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3664
    
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3665
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3666
    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
  3667
    [ 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
  3668
        (srchCon isJavaContext) ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3669
            method := srchCon method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3670
            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
  3671
            (hPC := method handlerFor: aJavaException at: pc) notNil ifTrue: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3672
                handlerPC := hPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3673
                handlerContext := srchCon
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3674
            ].
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3675
        ] ifFalse:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3676
            srchCon isHandleContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3677
                handler := srchCon receiver 
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3678
                    handlerForSignal: aJavaException class context: srchCon originator:thisContext sender.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3679
                handler notNil ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3680
                    "We have found a Smalltalk handler for Java exception here"
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3681
                    handlerContext := srchCon.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3682
                ]
1098
vranyj1
parents: 1097
diff changeset
  3683
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3684
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3685
        srchCon := srchCon sender.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3686
    ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3687
    handlerContext isNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3688
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3689
        "/ no JavaHandler ... let smalltalk handle it
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3690
        "/                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3691
        exClass := aJavaException class.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3692
        exClass == (self classNamed: 'java/lang/ThreadDeath') ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3693
            "/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
  3694
            ^ self
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3695
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3696
        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
  3697
        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
  3698
        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
  3699
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3700
        "/ for our convenience: skip ST contexts 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3701
        "/ (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
  3702
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3703
        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
  3704
        [ 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
  3705
        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
  3706
        JavaUnhandledExceptionError 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3707
            raiseWith: aJavaException
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3708
            errorString: msg
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3709
            in: con.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3710
    ] ifFalse: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3711
        handlerContext isJavaContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3712
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3713
            "/ found a Java exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3714
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3715
            handlerContext setPC: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3716
            handlerContext exceptionArg: aJavaException pc: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3717
            handlerContext markForException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3718
            handlerContext unwindAndRestartForJavaException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3719
            self halt: 'should not be reached'.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3720
        ] ifFalse:[
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3721
            | val |    
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3722
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3723
            "/ found a Smalltalk exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3724
            "/
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3725
            "/ First, call evaluate the handler (see GenericException>>doCallHandler:
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3726
            val := handler valueWithOptionalArgument: aJavaException.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3727
            "handler fall through - is just like a #return:(aHandlerBlock value)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3728
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3729
            "Java exceptions cannot be proceed (by design)  but they might be
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3730
            rejected (rethrown) - this is not supported yet - we need
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3731
            to somehow indicate that (kind of reject token object returned
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3732
            from handler?)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3733
            thisContext evaluateUnwindActionsUpTo:handlerContext.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3734
            handlerContext return: val.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3735
        ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3736
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3737
    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
  3738
    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3739
    Processor activeProcess terminate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3740
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3741
    "
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3742
     ExceptionTrace := true"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3743
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3744
    "Created: / 07-01-1998 / 15:28:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3745
    "Modified: / 24-12-1999 / 02:33:25 / cg"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3746
    "Modified: / 01-12-2011 / 18:32:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3747
    "Modified: / 18-03-2012 / 21:47:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3748
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3749
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3750
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3751
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3752
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3753
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3754
    ex := exClass newWith_String: someMessage.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3755
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3756
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3757
    "Created: / 07-01-1998 / 15:25:09 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3758
    "Modified: / 14-01-1998 / 23:38:30 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3759
    "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
  3760
    "Modified: / 02-11-2011 / 16:54:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3761
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3762
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3763
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage cause: cause 
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3764
    | exClass  ex |
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3765
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3766
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3767
    ex := exClass newWith_String: someMessage.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3768
    ex instVarNamed: #cause put: cause.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3769
    ^ self throwException: ex
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3770
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3771
    "Created: / 05-07-2012 / 09:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3772
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3773
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3774
throwExceptionForFinallyIn: context
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3775
    "Evaluates a single finally block by fake-throwing
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3776
     FinallyToken - only evaluates a finally handler in
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3777
     given method, senders are not searched"
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3778
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3779
    |method pc handlerPC token returnContext |
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3780
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3781
    self assert: context isJavaContext.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3782
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3783
    method := context method.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3784
    pc := context pc.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3785
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3786
    token := JavaContext::FinallyToken new.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3787
    returnContext := thisContext sender sender sender.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3788
    returnContext selector == #return: ifTrue:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3789
        token 
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3790
            context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3791
            selector: #return:;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3792
            exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3793
            value: (returnContext argAt:1).
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3794
    ] ifFalse:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3795
        returnContext selector == #return ifTrue:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3796
            token 
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3797
                context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3798
                selector: #return;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3799
                exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3800
                value: nil.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3801
        ] ifFalse:[    
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3802
            self error:'Unhandled case, inform libjava developers (JV in particular)' .
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3803
        ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3804
    ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3805
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
  3806
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3807
    handlerPC := method handlerFor: token at: pc.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3808
    handlerPC isNil ifTrue:[ ^ self ].
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3809
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3810
    context setPC: handlerPC.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3811
    context exceptionArg: token pc: handlerPC.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3812
    context markForException.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3813
    context restart.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3814
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3815
    self halt: 'should not be reached'.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3816
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3817
    "Created: / 03-04-2012 / 16:56:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3818
!
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3819
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3820
throwExceptionInInitializerError:className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3821
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3822
        throwExceptionClassName:'java.lang.ExceptionInInitializerError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3823
        withMessage:'error when initializing class: ' , className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3825
    "Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3826
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3827
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3828
throwFileNotFoundException: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3829
    ^ self 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3830
        throwExceptionClassName:'java.io.FileNotFoundException' 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3831
        withMessage: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3832
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3833
    "Created: / 04-01-1998 / 22:26:09 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3834
    "Modified: / 10-11-1998 / 13:20:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3835
    "Created: / 10-08-2011 / 14:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3836
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3837
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3838
throwIOExceptionWithMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3839
    IOExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3840
	self halt:'IO Exception'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3841
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3842
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3843
	throwExceptionClassName:'java.io.IOException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3844
	withMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3846
    "Created: / 7.1.1998 / 10:34:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3847
    "Modified: / 7.1.1998 / 15:26:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3848
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3849
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3850
throwIllegalAccessError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3851
    ^ 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
  3852
        withMessage: 'illegal access'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3853
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3854
    "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
  3855
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3856
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3857
throwIllegalAccessException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3858
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3859
	throwExceptionClassName:'java.lang.IllegalAccessException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3860
	withMessage:'illegal access'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3862
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3863
    "Created: / 14.1.1998 / 23:13:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3864
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3865
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3866
throwIllegalArgumentException: message
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3867
    ^ self 
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3868
        throwExceptionClassName:'java.lang.IllegalArgumentException' 
1151
vranyj1
parents: 1150
diff changeset
  3869
        withMessage: 'illegal argument: ', message
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3870
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3871
    "Modified: / 07-01-1998 / 15:25:35 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3872
    "Created: / 14-01-1998 / 23:13:44 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3873
    "Created: / 07-09-2011 / 14:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3874
!
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3875
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3876
throwIllegalMonitorStateException: message 
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3877
    self throwExceptionClassName: 'java.lang.IllegalMonitorStateException'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3878
            withMessage: message.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3879
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3880
    "Created: / 29-11-2011 / 14:21:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3881
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3882
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3883
throwIncompatibleClassChangeError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3884
        ^ 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
  3885
                withMessage: 'illegal change'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3886
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3887
    "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
  3888
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3889
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3890
throwInstantiationException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3891
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3892
	throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3893
	withMessage:'cannot instantiate'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3894
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3895
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3896
    "Created: / 14.1.1998 / 23:15:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3897
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3898
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3899
throwInstantiationExceptionFor:aJavaClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3900
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3901
        throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3902
        withMessage:('cannot instantiate: ' , aJavaClass javaName)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3903
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3904
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3905
    "Created: / 14.1.1998 / 23:17:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3906
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3907
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3908
throwInterruptedException: message 
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3909
    ^ self throwExceptionClassName: 'java.lang.InterruptedException'
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3910
        withMessage:message
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3911
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3912
    "Created: / 30-11-2011 / 12:23:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3913
!
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3914
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3915
throwInvocationTargetException: message target: target
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3916
    | exClass  ex |
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3917
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3918
    exClass := self classForName: #'java/lang/reflect/InvocationTargetException' definedBy: nil.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3919
    ex := exClass newWith_String: message.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3920
    ex instVarNamed: #target put: target.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3921
    ^ self throwException: ex
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3922
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3923
    "Created: / 05-07-2012 / 17:48:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3924
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3925
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3926
throwLinkageError: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3927
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3928
        throwExceptionClassName:'java.lang.LinkageError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3929
        withMessage: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3930
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3931
    "Modified: / 10-11-1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3932
    "Created: / 26-11-2010 / 11:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3933
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3934
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3935
throwNegativeArraySizeException: size
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3936
    ^ self 
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3937
        throwExceptionClassName: 'java.lang.NegativeArraySizeException'
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3938
        withMessage: 'negative array size: ' , size printString
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3939
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3940
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3941
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  3942
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3943
throwNoSuchFieldException
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3944
  ^ 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
  3945
        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
  3946
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3947
    "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
  3948
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3949
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3950
throwNoSuchMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3951
      ^ 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
  3952
              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
  3953
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3954
    "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
  3955
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3956
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3957
throwNullPointerException
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  3958
    NullPointerExceptionDebug == true ifTrue:[
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3959
        self halt:'Null Pointer exception'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3960
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3962
    ^ self 
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3963
        throwExceptionClassName:'java.lang.NullPointerException' 
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3964
        withMessage:'null pointer'
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3965
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3966
    "Created: / 09-01-1998 / 02:26:08 / cg"
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  3967
    "Modified: / 28-01-1998 / 02:30:09 / cg"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  3968
    "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
  3969
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3970
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3971
throwNullPointerException:message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3972
    NullPointerExceptionDebug == true ifTrue: [
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3973
        self halt: 'Null Pointer exception'.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3974
    ].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3975
    ^ self throwExceptionClassName: 'java.lang.NullPointerException'
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3976
        withMessage: message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3977
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3978
    "Created: / 09-01-1998 / 02:26:08 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3979
    "Modified: / 28-01-1998 / 02:30:09 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3980
    "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
  3981
    "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
  3982
!
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  3983
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3984
throwNumberFormatException 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3985
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3986
	throwExceptionClassName:'java.lang.NumberFormatException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3987
	withMessage:'bad number format'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3989
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3990
    "Created: / 11.1.1998 / 16:08:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3991
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3992
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3993
throwOutOfMemoryError
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3994
    ^ self 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3995
        throwExceptionClassName:'java.lang.OutOfMemoryError' 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3996
        withMessage:'Oops, out of memory!!'
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3997
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3998
    "Created: / 04-01-1998 / 22:26:09 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  3999
    "Modified: / 10-11-1998 / 13:20:31 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4000
    "Created: / 30-08-2011 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4001
!
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4002
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4003
throwSecurityException
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4004
    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
  4005
        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
  4006
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4007
            ^ 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
  4008
                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
  4009
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4010
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4011
    "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
  4012
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4013
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4014
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
  4015
    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
  4016
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4017
            ^ 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
  4018
                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
  4019
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4020
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4021
    "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
  4022
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4023
1084
vranyj1
parents: 1083
diff changeset
  4024
throwSocketException: message 
vranyj1
parents: 1083
diff changeset
  4025
    JavaClassReader classLoaderQuerySignal answer: nil
vranyj1
parents: 1083
diff changeset
  4026
        do: [
vranyj1
parents: 1083
diff changeset
  4027
            ^ self throwExceptionClassName: 'java.net.SocketException'
vranyj1
parents: 1083
diff changeset
  4028
                withMessage: message
vranyj1
parents: 1083
diff changeset
  4029
        ].
vranyj1
parents: 1083
diff changeset
  4030
vranyj1
parents: 1083
diff changeset
  4031
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4032
    "Created: / 03-11-2011 / 23:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4033
!
vranyj1
parents: 1083
diff changeset
  4034
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4035
throwZipException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4036
    ^ self throwExceptionClassName: 'java.util.zip.ZipException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4037
        withMessage: 'error in opening zip file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4039
    "Created: / 27-03-2011 / 16:25:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4040
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4042
!JavaVM class methodsFor:'helpers - io'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4044
anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4045
    |jStream fileNo file|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4047
    jStream := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4049
    fileNo := self validateFileNo:jStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4050
    fileNo == 0 ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4051
        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
  4052
        ^ self    "/ already closed
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4053
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4054
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4055
    file isNil ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4056
        self halt:'invalid fileNo in close'.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4057
        self internalError:'invalid fileNo in close'.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4058
        ^ self
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4059
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4061
    file == Stdin ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4062
        file := StdinReplacementFileQuerySignal raiseRequest.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4063
        file isNil ifTrue:[
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4064
            file := Stdin
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4065
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4066
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4068
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4070
    (file ~~ Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4071
    and:[file ~~ Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4072
    and:[file ~~ Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4073
    and:[file ~~ Transcript]]]) ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4074
        file close.
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4075
    ] ifFalse:[
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4076
        self breakPoint: #jv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4077
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4078
    self setOpenFile:nil at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4080
    fileNo := jStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4081
    fileNo isInteger ifFalse:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4082
        "/ JDK 1.1.3
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4083
        fileNo instVarNamed:'fd' put:0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4084
    ] ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4085
        "/ JDK 1.0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4086
        jStream instVarNamed:'fd' put:0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4087
    ].
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4088
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4089
    "Created: / 04-02-1998 / 15:22:03 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4090
    "Modified: / 14-10-1998 / 15:10:07 / cg"
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4091
    "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
  4092
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4094
anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4095
    |bytes offset count stream nRead|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4096
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4097
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4098
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4099
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4101
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4103
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4104
    bytes class isBytes ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4105
        self halt.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4106
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4107
    stream == Stdin ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4108
        stream := StdinReplacementFileQuerySignal raiseRequest.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4109
        stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4110
            ^ -1 "/ 0  EOF
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4111
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4112
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4114
    FileIOTrace ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4115
        ('JAVA: read ' , count printString , ' bytes from ' , stream pathName) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4116
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4118
    stream isPositionable ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4119
        "/ mhmh - some kind of socket or pipe
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4120
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4121
        stream readWait.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4122
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4123
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4124
    count == 0 ifTrue:[^0].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4126
    Stream readErrorSignal handle:[:ex |
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4127
        nRead := -1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4128
    ] do:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4129
        nRead := stream nextAvailableBytes:count into:bytes startingAt:offset+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4130
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4131
    nRead == 0 ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4132
        stream atEnd ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4133
            FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4134
                ('JAVA: at EOF ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4135
            ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4136
            ^ -1
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4137
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4138
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4139
    count ~~ nRead ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4140
        FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4141
            ('JAVA: only got ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4142
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4143
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4144
    ^ nRead
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4145
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4146
    "Created: / 04-02-1998 / 15:20:00 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4147
    "Modified: / 10-11-1998 / 19:56:47 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4148
    "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
  4149
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4151
anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4152
    |bytes offset count stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4154
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4155
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4156
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4158
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4160
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4161
        stream isFileStream ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4162
            Logger log: ('write ' , count printString , ' bytes to ' , stream pathName) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4163
        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4164
            stream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4165
                stream ~~ Stderr ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4166
                    Logger log: ('write ' , count printString , ' bytes to ' , stream displayString) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4167
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4168
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4169
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4170
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4172
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4173
    Stream writeErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4174
        ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4175
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4176
        Socket brokenConnectionSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4177
            ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4178
        ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4179
            stream isBinary ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4180
                stream nextPutBytes:count from:bytes startingAt:offset+1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4181
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4182
                stream nextPutAll: (bytes asString copyFrom: offset + 1 to: offset + count).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4183
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4184
            
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4185
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4186
        stream == Transcript ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4187
            Transcript endEntry
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4188
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4189
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4191
    "Created: / 04-02-1998 / 15:23:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4192
    "Modified: / 16-02-1999 / 11:32:45 / cg"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4193
    "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
  4194
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4196
checkWritePermissionOfDirectory:dir message:msg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4197
    |answer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4199
    (PermittedDirectories notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4200
    and:[PermittedDirectories includes:dir]) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4201
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4202
	    answer := Dialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4203
		    confirmWithCancel:msg withCRs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4204
			       labels:#('no' 'grant')
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4205
			       values:#(false true)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4206
			      default:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4207
	    answer == false ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4208
		^ false
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
	    (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir pathName , ''') ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4212
	    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4213
		PermittedDirectories isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4214
		    PermittedDirectories := Set new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4215
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4216
		PermittedDirectories add:dir.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4217
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4218
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4219
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4220
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4222
    "Created: / 3.12.1998 / 15:07:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4223
    "Modified: / 3.12.1998 / 15:16:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4224
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4225
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4226
commonClose:nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4227
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4228
    | fdobj fd stream |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4229
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4230
    fd    := fdobj instVarNamed: #fd.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4231
    fd == -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4232
        "Never opened or already closed"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4233
        ^self.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4234
    ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4235
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4236
    stream notNil ifTrue:[
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4237
        stream isView ifTrue:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4238
            "Some applications close stdout/stderr (such as Apache Tomcat).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4239
             We don't want that, so ignore a close in that case"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4240
            stream ~~ Transcript ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4241
                self breakPoint: #jv. 
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4242
            ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4243
        ] ifFalse:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4244
            (stream ~~ Stdout and:[stream ~~ Stderr and:[stream ~~ Stdin]]) ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4245
                stream close.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4246
            ]
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4247
        ]
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4248
    ] ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4249
        self breakPoint: #jv.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4250
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4251
    self setOpenFile: nil at: fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4252
    fdobj instVarNamed:#fd put: -1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4253
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4254
    "Created: / 10-08-2011 / 14:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4255
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4256
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4257
commonOpen:nativeContext forAppend:forAppend
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4258
    |fs fd fn name dir stream fileNo answer readonly|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4260
    fs := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4261
    fd := fs instVarNamed:'fd'.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4262
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4263
        "/self halt:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4264
        self internalError:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4265
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4266
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4268
    name := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4269
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4271
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4272
        ('JAVA: opening ' , name) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4273
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4274
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4275
    fn := name utf8Decoded asFilename.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4276
    dir := fn directory pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4278
    readonly := false.
904
vranyj1
parents: 903
diff changeset
  4279
"/    (PermittedDirectories notNil
vranyj1
parents: 903
diff changeset
  4280
"/    and:[PermittedDirectories includes:dir]) ifFalse:[
vranyj1
parents: 903
diff changeset
  4281
"/        FileOpenConfirmation ifTrue:[
vranyj1
parents: 903
diff changeset
  4282
"/            answer := Dialog 
vranyj1
parents: 903
diff changeset
  4283
"/                    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
vranyj1
parents: 903
diff changeset
  4284
"/                               labels:#('no' 'grant' 'readonly')
vranyj1
parents: 903
diff changeset
  4285
"/                               values:#(false true #readonly)
vranyj1
parents: 903
diff changeset
  4286
"/                              default:3.
vranyj1
parents: 903
diff changeset
  4287
"/            answer == false ifTrue:[
vranyj1
parents: 903
diff changeset
  4288
"/                self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
vranyj1
parents: 903
diff changeset
  4289
"/                ^ self
vranyj1
parents: 903
diff changeset
  4290
"/            ].
vranyj1
parents: 903
diff changeset
  4291
"/            readonly := (answer == #readonly).
vranyj1
parents: 903
diff changeset
  4292
"/
vranyj1
parents: 903
diff changeset
  4293
"/            readonly ifFalse:[
vranyj1
parents: 903
diff changeset
  4294
"/                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
vranyj1
parents: 903
diff changeset
  4295
"/                ifTrue:[
vranyj1
parents: 903
diff changeset
  4296
"/                    PermittedDirectories isNil ifTrue:[
vranyj1
parents: 903
diff changeset
  4297
"/                        PermittedDirectories := Set new
vranyj1
parents: 903
diff changeset
  4298
"/                    ].
vranyj1
parents: 903
diff changeset
  4299
"/                    PermittedDirectories add:dir.
vranyj1
parents: 903
diff changeset
  4300
"/                ]
vranyj1
parents: 903
diff changeset
  4301
"/            ]
vranyj1
parents: 903
diff changeset
  4302
"/        ]
vranyj1
parents: 903
diff changeset
  4303
"/    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4305
    readonly ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4306
        (fn exists and:[fn isReadable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4307
            ^self throwFileNotFoundException: 'File is not readable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4308
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4309
        stream := fn readStream.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4310
    ] ifFalse:[    
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4311
"/        fn exists ifFalse:[
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4312
"/            ^self throwFileNotFoundException: 'File does not exist'
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4313
"/        ].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4314
        fn isDirectory ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4315
             ^self throwFileNotFoundException: 'File is directory'
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4316
        ].
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4317
        (fn exists and:[fn isWritable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4318
            ^self throwFileNotFoundException: 'File does not writable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4319
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4320
        forAppend ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4321
            stream := fn appendingWriteStream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4322
        ] ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4323
            stream := fn writeStream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4324
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4325
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4326
    stream isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4327
        self throwIOExceptionWithMessage:('cannot open ' , name , ' for writing').
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4328
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4330
    fileNo := self addOpenFile:stream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4332
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4333
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4334
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4335
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4336
    fd instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4337
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4338
    "Created: / 07-04-1998 / 19:14:09 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4339
    "Modified: / 04-01-1999 / 14:34:42 / cg"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4340
    "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
  4341
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4343
fileStreamForReading:name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4344
    |fn stream tryAlongClassPath|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4346
    FileOpenTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4347
        ('JAVA: opening for read:' , name) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4348
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4349
    fn := name asFilename.
904
vranyj1
parents: 903
diff changeset
  4350
    fn exists  ifFalse:[
vranyj1
parents: 903
diff changeset
  4351
        ^self throwFileNotFoundException: 'File does not exists'
vranyj1
parents: 903
diff changeset
  4352
    ].
vranyj1
parents: 903
diff changeset
  4353
    fn isDirectory ifTrue:[
vranyj1
parents: 903
diff changeset
  4354
        ^self throwFileNotFoundException: 'File is directory'
vranyj1
parents: 903
diff changeset
  4355
    ].
vranyj1
parents: 903
diff changeset
  4356
    fn isReadable  ifFalse:[
vranyj1
parents: 903
diff changeset
  4357
        ^self throwFileNotFoundException: 'File is not readable'
vranyj1
parents: 903
diff changeset
  4358
    ].
vranyj1
parents: 903
diff changeset
  4359
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4360
    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4361
    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4363
    fn isAbsolute ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4364
        "/ if not absolute, try along classPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4365
        "/ This allows classes to open local files (JEdit)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4366
        "/ even if they have NOT been loaded by a Java classLoader.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4367
        "/ Only do this for image files 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4368
        "/ (and maybe some other config files in the future),
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4369
        "/ to avoid security holes.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4370
        tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4371
"/        tryAlongClassPath := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4372
"/        (fn hasSuffix:'gif') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4373
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4374
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4375
"/        (fn hasSuffix:'jpg') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4376
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4377
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4379
        tryAlongClassPath ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4380
            Java effectiveClassPath do:[:dirName |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4381
                |fn|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4383
                (fn := dirName asFilename construct:name) exists ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4384
                    fn isReadable ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4385
                        self throwFileNotFoundException: 'File is not readable'.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4386
                        ^nil
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4387
                    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4388
                    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4389
                    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4390
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4391
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4392
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4393
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4394
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4396
    "Modified: / 27-01-1999 / 18:54:46 / cg"
904
vranyj1
parents: 903
diff changeset
  4397
    "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
  4398
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4400
fixFilename:path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4401
    OperatingSystem isMSDOSlike ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4402
	(#($/ $\) includes:(path at:1)) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4403
	    (path at:3) == $: ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4404
		^ path copyFrom:2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4405
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4406
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4407
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4408
    ^ path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4410
    "Created: / 20.10.1998 / 20:58:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4411
    "Modified: / 20.10.1998 / 21:06:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4412
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4414
validateFile:javaStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4415
    |fileNo file descriptor|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4417
    fileNo := self validateFileNo:javaStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4418
    fileNo isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4419
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4420
"/        self internalError:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4421
	self throwIOExceptionWithMessage:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4422
	^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4423
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4425
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4427
    file isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4428
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4429
"/        self internalError:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4430
	self throwIOExceptionWithMessage:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4431
	^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4432
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4434
    ^ file
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4436
    "Created: / 4.1.1998 / 16:50:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4437
    "Modified: / 4.1.1998 / 17:50:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4438
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4439
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4440
validateFileDescriptor: jFileDescriptor
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4441
    "Validates given instance of java.io.FileDescriptor.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4442
     If it is valid, return underlying Smalltalk stream,
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4443
     otherwise, throws java.io.IOException"    
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4444
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4445
    | fileNo stream |
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4446
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4447
    fileNo := jFileDescriptor instVarNamed:'fd'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4448
    ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4449
        fileNo := jFileDescriptor instVarNamed:'handle'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4450
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4451
    fileNo isInteger ifFalse:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4452
        self throwIOExceptionWithMessage:'Invalid fd in java.io.FileDescriptor'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4453
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4454
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4455
    fileNo == -1 ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4456
        self throwIOExceptionWithMessage:'java.io.FileDescriptor not open'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4457
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4458
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4459
    stream := self getOpenFileAt:fileNo.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4460
    stream isNil ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4461
        self throwIOExceptionWithMessage:'Stale descriptor in java.io.FileDescriptor (VM stream does not exists)'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4462
        ^nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4463
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4464
    ^ stream.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4465
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4466
    "Created: / 06-07-2012 / 23:02:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4467
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4468
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4469
validateFileNo:javaStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4470
    |fileNo file descriptor|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4472
    "/ JDK 1.1.3 has fileDescriptor wrapped
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4473
    "/ JDK 1.0 has it directly as integer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4475
    fileNo := javaStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4476
    fileNo isInteger ifFalse:[
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4477
        descriptor := fileNo.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4478
        descriptor notNil ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4479
            fileNo := descriptor instVarNamed:'fd'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4480
            ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4481
                fileNo := descriptor instVarNamed:'handle'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4482
            ]
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4483
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4484
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4486
    fileNo isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4487
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4488
"/        self internalError:'invalid fileNo in read'.
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4489
        self throwIOExceptionWithMessage:'invalid fileNo in read'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4490
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4491
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4493
    ^ fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4494
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4495
    "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
  4496
    "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
  4497
    "Modified: / 18-08-2011 / 20:03:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4498
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4500
!JavaVM class methodsFor:'helpers - reflection'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4501
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4502
classForJavaClassObject:aJavaClassObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4503
    "given java.lang.class instance, return the real class for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4504
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4505
    ^ self reflection classForJavaClassObject:aJavaClassObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4507
    "Created: / 23-01-1998 / 17:44:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4508
    "Modified: / 03-02-2011 / 21:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4509
    "Modified: / 09-02-2011 / 01:02:17 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4510
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4511
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4512
javaClassObjectForClass: aClass 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4513
    "given a real class, return the corresponding java.lang.class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4514
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4515
    
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4516
    | class |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4518
    "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
  4519
    (JavaObjectDictionary new hasReflection: aClass name) ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4520
        class := JavaObjectDictionary new reflectionOf: aClass name
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4521
    ] ifFalse: [ class := aClass. ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4522
    ^ self reflection javaClassObjectForClass: class.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4523
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4524
    "Created: / 23-01-1998 / 17:43:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4525
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4526
    "Modified: / 17-01-2011 / 19:24:22 / kursjan <kursjan@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4527
    "Modified: / 28-01-2011 / 14:31:25 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4528
    "Modified: / 03-02-2011 / 21:31:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4529
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4530
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4531
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4532
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4533
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4534
    self breakPoint:#mh info:'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4535
    ^ self reflection javaConstructorObjectForMethod: method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4537
    "Modified: / 09-02-2011 / 00:58:09 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4538
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4540
javaFieldObjectForField: aJavaField in: aJavaLangClass 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4541
    "given a java field, return the corresponding java.lang.Field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4542
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4543
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4544
        See OpenJDK7 source:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4545
        jdk7/hotspot/src/share/vm/runtime/reflection.cpp,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4546
        oop Reflection::new_field"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4547
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4548
    | field  clazz  name  slot  type  modifiers |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4550
    clazz := aJavaLangClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4551
    name := self reflection javaStringObjectForString: aJavaField name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4552
                interned: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4553
    slot := aJavaField index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4554
    type := self javaClassObjectForClass: aJavaField typeClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4555
    modifiers := aJavaField accessFlags.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4556
    field := (self classForName: 'java.lang.reflect.Field') new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4557
    field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4558
        instVarNamed: #clazz put: clazz;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4559
        instVarNamed: #name put: name;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4560
        instVarNamed: #slot put: slot;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4561
        instVarNamed: #type put: type;
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4562
        instVarNamed: #modifiers put: modifiers;
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4563
        yourself.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4564
    aJavaField annotations 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4565
        ifNotNil: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4566
            field instVarNamed: #annotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4567
                put: aJavaField annotations runtimeVisible rawAnnotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4568
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4569
    ^ field.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4570
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4571
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4572
    "Created: / 22-11-2010 / 17:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4573
    "Modified: / 09-02-2011 / 01:06:20 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4574
    "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
  4575
    "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
  4576
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4577
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4578
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4579
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4580
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4581
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4582
    ^ self reflection javaMethodObjectForMethod:method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4584
    "Modified: / 28-02-2011 / 17:08:36 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4585
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4587
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4588
    "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4589
     it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4590
    self breakPoint:#mh info: 'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4591
    ^ self reflection methodForJavaConstructorObject: constructor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4593
    "Modified: / 09-02-2011 / 00:59:43 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4594
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4596
methodForJavaMethodObject:aJavaMethodObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4597
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4598
        Given an instance of java.lang.reflect.Method, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4599
        real method associated with it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4600
   ^ self reflection methodForJavaMethodObject:aJavaMethodObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4601
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4602
    "Modified: / 07-02-2011 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4603
    "Modified: / 28-02-2011 / 16:58:05 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4604
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4605
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4606
!JavaVM class methodsFor:'monitors'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4607
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4608
monitorEnter: someObject in: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4609
    | thisProcess wasBlocked |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4610
    self assert: (aJavaContext isJavaContext).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4611
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4612
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4613
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4614
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4615
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4616
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4617
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4618
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4619
            log: ('MONENTER: entering monitor for %1 in %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4620
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4621
                    with: thisProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4622
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4623
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4624
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4625
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4626
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4627
    self enterMonitor: someObject ofProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4628
    aJavaContext addMonitor: someObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4629
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4630
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4631
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4632
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4633
            log: 'MONENTER: monitor entered in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4634
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4635
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4636
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4637
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4638
    "Created: / 08-11-2011 / 15:15:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4639
    "Modified: / 13-04-2012 / 00:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4640
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4641
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4642
monitorExit: someObject in: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4643
    | thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4644
    self assert: (aJavaContext isJavaContext).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4645
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4646
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4647
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4648
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4649
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4650
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4651
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4652
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4653
            log: ('MONEXIT: leaving monitor for %1 in %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4654
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4655
                    with: thisProcess name) , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4656
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4657
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4658
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4659
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4660
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4661
    self leaveMonitor: someObject ofProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4662
    aJavaContext removeMonitor: someObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4663
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4664
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4665
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4666
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4667
            log: 'MONEXIT: monitor left in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4668
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4669
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4670
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4671
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4672
    "Created: / 08-11-2011 / 15:17:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4673
    "Modified (format): / 13-04-2012 / 00:38:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4674
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4675
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4676
notify: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4677
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4678
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4679
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4680
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4681
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4682
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4683
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4684
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4685
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4686
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4687
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4688
    mon notify.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4689
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4690
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4691
    "Created: / 22-11-2011 / 13:26:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4692
    "Modified: / 13-04-2012 / 00:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4693
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4694
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4695
notifyAll: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4696
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4697
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4698
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4699
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4700
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4701
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4702
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4703
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4704
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4705
        ^self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4706
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4707
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4708
    mon notifyAll.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4709
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4710
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4711
    "Created: / 22-11-2011 / 13:26:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4712
    "Modified: / 13-04-2012 / 00:40:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4713
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4714
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4715
releaseMonitorsOfUnwindingContext: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4716
    "Forcibly releases all monitors acquired by given context.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4717
     Use by unwind handlers"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4718
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4719
    | thisProcess  wasBlocked|
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4720
    MonitorTrace ifTrue:[
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4721
        Logger 
1486
48012ce29afd - TestletTestCaseProxy
vranyj1
parents: 1481
diff changeset
  4722
            log: ('UNWIND HANDLER: force-leaving ',aJavaContext acquiredMonitors size printString,'monitors acquired by: ' , aJavaContext printString )
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4723
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4724
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4725
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4726
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4727
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4728
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4729
    aJavaContext acquiredMonitorsDo: [ :each | 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4730
        JavaVM 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4731
            monitorExit: each
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4732
            in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4733
            ifOwnedBy: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4734
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4735
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4736
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4737
    MonitorTrace ifTrue:[
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4738
        Logger 
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4739
            log: ('UNWIND HANDLER: leftover monitors left for ' , aJavaContext printString )
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4740
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4741
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4742
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4743
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4744
    "Created: / 05-04-2012 / 11:35:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4745
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4746
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4747
sleepForTimeout: tmo state: state 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4748
    "wait"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4749
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4750
    | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4751
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4752
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4753
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4754
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4755
                    throwInterruptedException: 'process was interrupted before/during sleep !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4756
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4757
    thisProcess state: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4758
    (Delay forMilliseconds: tmo) waitWithState: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4759
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4760
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4761
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4762
            throwInterruptedException: 'process was interrupted before/during sleep !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4763
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4764
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4765
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4766
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4767
    "Created: / 30-11-2011 / 11:04:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4768
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4769
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4770
waitOn: handle forTimeout: tmo state: state 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4771
    "wait"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4772
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4773
    | wasBlocked  thisProcess  mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4774
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4775
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4776
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4777
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4778
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4779
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4780
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4781
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4782
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4783
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4784
        self throwIllegalMonitorStateException: 'monitor was not owned on wait by ' , thisProcess printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4785
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4786
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4787
    state notNil ifTrue: [ thisProcess state: state ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4788
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4789
    mon waitForMilliseconds: tmo.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4790
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4791
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4792
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4793
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4794
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4795
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4796
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4797
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4798
    "Created: / 22-11-2011 / 13:20:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4799
    "Modified: / 13-04-2012 / 00:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4800
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4801
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4802
!JavaVM class methodsFor:'monitors-internal'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4803
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4804
acquireMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4805
    "Acquire* (stay in the queue and get it) monitor.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4806
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4807
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4808
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4809
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4810
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4811
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4812
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4813
            log: ('acquiring monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4814
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4815
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4816
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4817
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4818
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4819
    mon acquire.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4820
    self assert:(mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4821
    self acquiredMonitorsOf: aProcess add: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4822
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4823
    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4824
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4825
    "Created: / 17-11-2011 / 19:01:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4826
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4827
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4828
acquireMonitorAndNotifyAll: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4829
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4830
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4831
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4832
    self notifyAll: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4833
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4834
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4835
    "Created: / 29-11-2011 / 14:24:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4836
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4837
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4838
acquireMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4839
    "will try to acquire all entered monitors of process"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4840
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4841
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4842
    (self hasEnteredMonitorsOfProcess: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4843
        enteredMonitors := self copyEnteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4844
        self assert: enteredMonitors notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4845
        enteredMonitors do: [:each | self acquireMonitor: each ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4846
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4847
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4848
    "Created: / 17-11-2011 / 17:16:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4849
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4850
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4851
acquiredMonitorsOf: aProcess add: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4852
   
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4853
    ^ (self acquiredMonitorsOfProcess: aProcess) add: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4854
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4855
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4856
    "Created: / 17-11-2011 / 18:29:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4857
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4858
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4859
acquiredMonitorsOf: aProcess remove: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4860
"/    self assert: ((self acquiredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4861
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4862
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4863
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4864
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4865
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4866
    (self acquiredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4867
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4868
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4869
    "Created: / 17-11-2011 / 18:40:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4870
    "Modified: / 11-04-2012 / 23:37:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4871
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4872
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4873
acquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4874
    ^ AcquiredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4875
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4876
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4877
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4878
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4879
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4880
        ] 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4881
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4882
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4883
    "Created: / 17-11-2011 / 18:29:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4884
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4885
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4886
acquiredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4887
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4888
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4889
    ^ AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4890
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4891
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4892
    "Created: / 17-11-2011 / 17:03:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4893
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4894
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4895
copyAcquiredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4896
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4897
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4898
    ^ (AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4899
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4900
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4901
    "Created: / 17-11-2011 / 19:23:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4902
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4903
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4904
copyEnteredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4905
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4906
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4907
    ^ (EnteredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4908
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4909
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4910
    "Created: / 17-11-2011 / 19:22:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4911
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4912
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4913
countAcquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4914
    | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4915
    acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4916
    ^ acquiredMonitors isNil ifTrue: [ 0 ] ifFalse: [ acquiredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4917
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4918
    "Created: / 17-11-2011 / 18:23:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4919
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4920
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4921
countEnteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4922
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4923
    enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4924
    ^ enteredMonitors isNil ifTrue: [ 0 ] ifFalse: [ enteredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4925
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4926
    "Created: / 17-11-2011 / 17:14:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4927
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4928
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4929
enterMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4930
    "registers itself as one of processes wanting monitor and then tries to acquire it."
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4931
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4932
    | mon objInLists |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4933
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4934
        MonitorTraceId := MonitorTraceId + 1.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4935
        objInLists := { obj . MonitorTraceId }
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4936
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4937
        objInLists := obj
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4938
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4939
    self enteredMonitorsOf: aProcess add: objInLists.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4940
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4941
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4942
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4943
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4944
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4945
            log: ('[trace id %3] Entering monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4946
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4947
                    with: aProcess id
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4948
                    with: MonitorTraceId)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4949
            severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4950
            facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4951
            originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4952
            "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4953
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4954
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4955
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4956
    self acquiredMonitorsOf: aProcess add: objInLists.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4957
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: objInLists).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4958
    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: objInLists).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4959
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4960
    "Created: / 17-11-2011 / 19:03:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4961
    "Modified: / 13-04-2012 / 01:18:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4962
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4963
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4964
enteredMonitorsOf: aProcess add: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4965
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4966
    ^ (self enteredMonitorsOfProcess: aProcess) addLast: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4967
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4968
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4969
    "Created: / 17-11-2011 / 16:25:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4970
    "Modified: / 13-04-2012 / 01:05:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4971
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4972
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4973
enteredMonitorsOf: aProcess remove: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4974
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4975
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4976
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4977
        self assert: ((self enteredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4978
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4979
        self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4980
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4981
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4982
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4983
    (self enteredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4984
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4985
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4986
    "Created: / 17-11-2011 / 18:40:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4987
    "Modified: / 11-04-2012 / 23:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4988
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4989
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4990
enteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4991
    ^ EnteredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4992
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4993
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4994
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4995
            EnteredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4996
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4997
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4998
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4999
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5000
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5001
    "Modified: / 17-11-2011 / 19:22:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5002
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5003
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5004
enteredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5005
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5006
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5007
    ^ EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5008
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5009
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5010
    "Created: / 16-11-2011 / 15:37:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5011
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5012
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5013
exitOwnedMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5014
   |thisProcess monitors|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5015
   thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5016
   monitors := self acquiredMonitorsOfProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5017
   monitors do: [:each | self assert: (each isOwnedBy:thisProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5018
    each exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5019
    ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5020
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5021
    "Created: / 05-12-2011 / 21:15:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5022
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5023
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5024
has: aProcess enteredMonitorFor: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5025
    ^ (self enteredMonitorsOfProcess: aProcess) includes: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5026
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5027
    "Created: / 17-11-2011 / 16:28:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5028
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5029
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5030
hasAcquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5031
   | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5032
   acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5033
   ^ acquiredMonitors isNil 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5034
   ifTrue: [ false ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5035
           ifFalse: [ acquiredMonitors size > 0 ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5036
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5037
    "Created: / 17-11-2011 / 17:07:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5038
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5039
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5040
hasEnteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5041
   | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5042
   enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5043
   ^ enteredMonitors isNil ifTrue: [ false ] ifFalse: [ enteredMonitors size > 0].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5044
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5045
    "Created: / 17-11-2011 / 17:09:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5046
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5047
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5048
leaveMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5049
    "Leave* (release and never come back, exit) monitor owned by given project.     
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5050
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5051
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5052
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5053
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5054
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5055
    "/self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5056
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5057
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5058
        log: ('[trace id %3] leaving monitor %1 owned by thread: %2 ' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5059
                bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5060
                with: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5061
                with: (self enteredMonitorsOfProcess: aProcess) last second)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5062
        severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5063
        facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5064
        originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5065
        "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5066
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5067
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5068
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5069
    self acquiredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5070
    self enteredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5071
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5072
    "Created: / 17-11-2011 / 18:46:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5073
    "Modified: / 13-04-2012 / 01:17:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5074
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5075
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5076
leaveMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5077
    "Leave* (release and never come back, exit) all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5078
     Called when cleaning up after process death or when handling smalltalk (non-java) exceptions
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5079
     (such an exception in native method)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5080
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5081
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5082
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5083
    monitors := EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5084
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5085
        monitors do: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5086
            :obj | 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5087
            | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5088
            mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5089
            mon notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5090
                (mon isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5091
                    Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5092
                        log: ('leaving monitor owned by dying thread: ' , aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5093
                        severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5094
                        facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5095
                    self breakPoint: #jv.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5096
                    mon exit
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5097
                ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5098
            ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5099
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5100
        EnteredMonitorsPerProcess removeKey: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5101
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5102
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5103
    "Created: / 17-11-2011 / 16:51:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5104
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5105
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5106
monitorExit: someObject in: aJavaContext ifOwnedBy: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5107
    | monitor |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5108
    monitor := self monitorFor: someObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5109
    (monitor isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5110
        self monitorExit: someObject in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5111
    ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5112
        MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5113
            Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5114
                log: ('%1 trying to exit monitor for %2, but it does not own it. Ignoring' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5115
                        bindWith: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5116
                        with: (self monitorFriendlyPrintStringOf: someObject))
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5117
                severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5118
                facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5119
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5120
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5121
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5122
    "Created: / 17-11-2011 / 21:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5123
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5124
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5125
monitorFor: someObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5126
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5127
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5128
"/    JV@2012-04-13: Removed the critical section - this method should be called
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5129
"/                   only when interrupts are blocked
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5130
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5131
"/    LockTableAccess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5132
"/        critical: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5133
            mon := LockTable at: someObject ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5134
            mon isNil ifTrue: [ LockTable at: someObject put: (mon := JavaMonitor for: someObject) ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5135
"/        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5136
    ^ mon
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5137
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5138
    "Created: / 02-01-1998 / 19:01:52 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5139
    "Modified: / 30-11-2011 / 20:40:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5140
    "Modified: / 13-04-2012 / 00:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5141
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5142
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5143
monitorFriendlyPrintStringOf: someObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5144
    | objString |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5145
    someObject isJavaClass ifTrue: [ objString := someObject name ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5146
        objString := someObject class name , '@' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5147
                    , someObject identityHash printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5148
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5149
    ^ objString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5150
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5151
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5152
releaseMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5153
    "Release* (let go and wait for it again) monitor owned by given project.     
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5154
     *word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5155
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5156
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5157
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5158
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5159
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5160
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5161
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5162
            log: ('releasing monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5163
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5164
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5165
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5166
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5167
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5168
    mon release.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5169
    self acquiredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5170
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5171
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5172
    "Created: / 17-11-2011 / 18:51:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5173
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5174
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5175
releaseMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5176
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5177
    self releaseMonitorsOfProcess: Processor activeProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5178
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5179
    "Created: / 04-11-2011 / 22:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5180
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5181
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5182
releaseMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5183
    "Releases* all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5184
     Monitor can be acquired again, (aProcess going into WAIT)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5185
     *word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5186
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5187
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5188
    monitors := self copyAcquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5189
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5190
        monitors do: [:obj | self releaseMonitor: obj ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5191
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5192
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5193
    "Created: / 04-11-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5194
    "Modified: / 17-11-2011 / 21:29:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5195
    "Modified (comment): / 05-12-2011 / 21:13:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5196
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5197
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5198
unwindHandlerForJavaContext: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5199
    "given a context which has been marked for unwind,
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5200
     retrieve the handler block. This method is called when ST
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5201
     exception raises and stack is unwinding. JavaClass instance
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5202
     has an opportunity to clean up monitors"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5203
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5204
    ^ [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5205
        | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5206
        aJavaContext shouldExecuteFinallyOnUnwind ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5207
            self throwExceptionForFinallyIn: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5208
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5209
        self releaseMonitorsOfUnwindingContext: aJavaContext.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5210
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5211
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5212
    "Created: / 08-11-2011 / 12:30:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5213
    "Modified: / 17-11-2011 / 21:33:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5214
    "Modified: / 10-04-2012 / 11:08:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5215
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5216
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5217
!JavaVM class methodsFor:'native - com.sun.management'!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5218
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5219
_com_sun_management_UnixOperatingSystem_initialize: nativeContext
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5220
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5221
    <javanative: 'com/sun/management/UnixOperatingSystem' name: 'initialize()V'>
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5222
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5223
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
  5224
^self.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5225
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5226
    "Modified: / 03-11-2011 / 18:59:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5227
! !
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5228
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5229
!JavaVM class methodsFor:'native - java.awt'!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5230
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5231
_java_awt_AWTEvent_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5232
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5233
    <javanative: 'java/awt/AWTEvent' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5234
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5235
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5236
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5237
    "Modified: / 12-08-2011 / 19:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5238
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5239
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5240
_java_awt_Button_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5241
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5242
    <javanative: 'java/awt/Button' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5243
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5244
    "Modified: / 09-02-2012 / 22:54:34 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5245
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5246
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5247
_java_awt_Color_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5248
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5249
    <javanative: 'java/awt/Color' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5250
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5251
        "/ new with jdk1.2 ...
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5252
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5253
    "Created: / 28.1.1998 / 22:19:23 / cg"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5254
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5255
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5256
_java_awt_Component_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5257
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5258
    <javanative: 'java/awt/Component' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5259
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5260
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5261
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5262
    "Created: / 27.1.1998 / 19:53:29 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5263
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5264
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5265
_java_awt_Container_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5266
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5267
    <javanative: 'java/awt/Container' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5268
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5269
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5270
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5271
    "Modified: / 12-08-2011 / 19:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5272
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5273
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5274
_java_awt_Cursor_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5275
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5276
    <javanative: 'java/awt/Cursor' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5277
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5278
    "Modified: / 09-02-2012 / 22:54:49 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5279
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5280
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5281
_java_awt_Dialog_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5282
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5283
    <javanative: 'java/awt/Dialog' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5284
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5285
    "Modified: / 09-02-2012 / 22:54:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5286
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5287
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5288
_java_awt_Dimension_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5289
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5290
    <javanative: 'java/awt/Dimension' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5291
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5292
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5293
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5294
    "Modified: / 12-08-2011 / 19:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5295
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5296
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
  5297
_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
  5298
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5299
    <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
  5300
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5301
    "Modified: / 09-02-2012 / 22:53:11 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5302
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5303
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5304
_java_awt_FontMetrics_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5305
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5306
    <javanative: 'java/awt/FontMetrics' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5307
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
  5308
    ^ 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
  5309
!
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5310
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5311
_java_awt_Frame_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5312
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5313
    <javanative: 'java/awt/Frame' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5314
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5315
    "Modified: / 09-02-2012 / 22:53:52 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5316
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5317
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5318
_java_awt_Insets_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5319
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5320
    <javanative: 'java/awt/Insets' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5321
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5322
    "Modified: / 09-02-2012 / 22:54:54 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5323
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5324
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5325
_java_awt_KeyboardFocusManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5326
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5327
    <javanative: 'java/awt/KeyboardFocusManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5328
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5329
    "Modified: / 09-02-2012 / 22:55:04 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5330
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5331
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5332
_java_awt_MenuComponent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5333
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5334
    <javanative: 'java/awt/MenuComponent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5335
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5336
    "Modified: / 09-02-2012 / 22:53:22 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5337
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5338
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5339
_java_awt_MenuItem_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5340
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5341
    <javanative: 'java/awt/MenuItem' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5342
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5343
    "Modified: / 09-02-2012 / 22:54:40 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5344
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5345
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5346
_java_awt_Rectangle_initIDs: nativeContext
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5347
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5348
    <javanative: 'java/awt/Rectangle' name: 'initIDs()V'>
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5349
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5350
    "Intentionally left blank"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5351
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5352
    "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
  5353
!
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5354
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5355
_java_awt_Toolkit_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5356
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5357
    <javanative: 'java/awt/Toolkit' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5358
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5359
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5360
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5361
    "Created: / 27.1.1998 / 19:53:50 / cg"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5362
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5363
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5364
_java_awt_Window_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5365
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5366
    <javanative: 'java/awt/Window' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5367
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5368
    "Modified: / 09-02-2012 / 22:53:47 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5369
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5370
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5371
!JavaVM class methodsFor:'native - java.awt.event'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5372
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5373
_java_awt_event_InputEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5374
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5375
    <javanative: 'java/awt/event/InputEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5376
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5377
    "Modified: / 09-02-2012 / 22:53:27 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5378
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5379
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5380
_java_awt_event_KeyEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5381
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5382
    <javanative: 'java/awt/event/KeyEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5383
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5384
    "Modified: / 09-02-2012 / 22:53:33 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5385
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5386
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5387
_java_awt_event_MouseEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5388
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5389
    <javanative: 'java/awt/event/MouseEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5390
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5391
    "Modified: / 09-02-2012 / 22:53:40 / mh <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5392
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5393
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5394
!JavaVM class methodsFor:'native - java.io'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5395
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5396
_java_io_FileDescriptor_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5398
    <javanative: 'java/io/FileDescriptor' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5400
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5401
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5402
    "Created: / 27.1.1998 / 18:16:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5403
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5404
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5405
_java_io_FileDescriptor_set: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5406
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5407
    <javanative: 'java/io/FileDescriptor' name: 'set(I)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5408
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5409
    "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
  5410
     FD instead"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5411
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5412
    ^nativeContext argAt:1
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5413
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  5414
    "Modified: / 18-08-2011 / 19:54:36 / jv"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5415
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5416
904
vranyj1
parents: 903
diff changeset
  5417
_java_io_FileDescriptor_sync: nativeContext
vranyj1
parents: 903
diff changeset
  5418
vranyj1
parents: 903
diff changeset
  5419
    <javanative: 'java/io/FileDescriptor' name: 'sync'>
vranyj1
parents: 903
diff changeset
  5420
    "
vranyj1
parents: 903
diff changeset
  5421
    /**
vranyj1
parents: 903
diff changeset
  5422
    * Force all system buffers to synchronize with the underlying
vranyj1
parents: 903
diff changeset
  5423
    * device.  This method returns after all modified data and
vranyj1
parents: 903
diff changeset
  5424
    * attributes of this FileDescriptor have been written to the
vranyj1
parents: 903
diff changeset
  5425
    * relevant device(s).  In particular, if this FileDescriptor
vranyj1
parents: 903
diff changeset
  5426
    * refers to a physical storage medium, such as a file in a file
vranyj1
parents: 903
diff changeset
  5427
    * system, sync will not return until all in-memory modified copies
vranyj1
parents: 903
diff changeset
  5428
    * of buffers associated with this FileDescriptor have been
vranyj1
parents: 903
diff changeset
  5429
    * written to the physical medium.
vranyj1
parents: 903
diff changeset
  5430
    *
vranyj1
parents: 903
diff changeset
  5431
    * sync is meant to be used by code that requires physical
vranyj1
parents: 903
diff changeset
  5432
    * storage (such as a file) to be in a known state  For
vranyj1
parents: 903
diff changeset
  5433
    * example, a class that provided a simple transaction facility
vranyj1
parents: 903
diff changeset
  5434
    * might use sync to ensure that all changes to a file caused
vranyj1
parents: 903
diff changeset
  5435
    * by a given transaction were recorded on a storage medium.
vranyj1
parents: 903
diff changeset
  5436
    *
vranyj1
parents: 903
diff changeset
  5437
    * sync only affects buffers downstream of this FileDescriptor.  If
vranyj1
parents: 903
diff changeset
  5438
    * any in-memory buffering is being done by the application (for
vranyj1
parents: 903
diff changeset
  5439
    * example, by a BufferedOutputStream object), those buffers must
vranyj1
parents: 903
diff changeset
  5440
    * be flushed into the FileDescriptor (for example, by invoking
vranyj1
parents: 903
diff changeset
  5441
    * OutputStream.flush) before that data will be affected by sync.
vranyj1
parents: 903
diff changeset
  5442
    *
vranyj1
parents: 903
diff changeset
  5443
    * @exception SyncFailedException
vranyj1
parents: 903
diff changeset
  5444
    *        Thrown when the buffers cannot be flushed,
vranyj1
parents: 903
diff changeset
  5445
    *        or because the system cannot guarantee that all the
vranyj1
parents: 903
diff changeset
  5446
    *        buffers have been synchronized with physical media.
vranyj1
parents: 903
diff changeset
  5447
    * @since     JDK1.1
vranyj1
parents: 903
diff changeset
  5448
    */
vranyj1
parents: 903
diff changeset
  5449
    public native void sync() throws SyncFailedException;
vranyj1
parents: 903
diff changeset
  5450
    "
vranyj1
parents: 903
diff changeset
  5451
vranyj1
parents: 903
diff changeset
  5452
    OpenFileTable do:[:stream|
vranyj1
parents: 903
diff changeset
  5453
        stream notNil ifTrue:[stream flush].
vranyj1
parents: 903
diff changeset
  5454
    ].
vranyj1
parents: 903
diff changeset
  5455
vranyj1
parents: 903
diff changeset
  5456
    "Created: / 12-11-1998 / 19:26:25 / cg"
vranyj1
parents: 903
diff changeset
  5457
    "Modified (format): / 10-08-2011 / 19:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 903
diff changeset
  5458
!
vranyj1
parents: 903
diff changeset
  5459
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5460
_java_io_FileInputStream_available: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5461
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5462
    <javanative: 'java/io/FileInputStream' name: 'available'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5463
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5464
        |file|
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5465
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5466
    file := self validateFile:(nativeContext receiver).
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5467
    file isNil ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5468
	self throwIOExceptionWithMessage:'invalid fileNo in available'.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5469
	^ self
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5470
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5471
    file == Stdin ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5472
	file := StdinReplacementFileQuerySignal raiseRequest.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5473
	file isNil ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5474
	    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5475
	]
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5476
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5477
    file isFileStream ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5478
	^ file size - file position + 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5479
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5480
    file atEnd ifTrue:[
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5481
	^ 0.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5482
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5483
    self halt.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5484
    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5485
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5486
    "Modified: / 14.1.1998 / 15:12:52 / cg"
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5487
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5488
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5489
_java_io_FileInputStream_close0: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5490
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5491
    <javanative: 'java/io/FileInputStream' name: 'close0'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5492
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5493
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5494
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5495
    "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
  5496
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5497
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5498
_java_io_FileInputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5499
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5500
    <javanative: 'java/io/FileInputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5501
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5502
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5503
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5504
    "Created: / 27.1.1998 / 18:15:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5505
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5506
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5507
_java_io_FileInputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5508
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5509
    <javanative: 'java/io/FileInputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5510
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5511
        |fs fd fn name stream fileNo|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5512
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5513
    fs := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5514
    fd := fs instVarNamed:'fd'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5515
    (fileNo := fd instVarNamed:'fd') ~~ 0 ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5516
        fileNo ~~ -1 ifTrue:[
vranyj1
parents: 903
diff changeset
  5517
            self halt:'file already open'.
vranyj1
parents: 903
diff changeset
  5518
            self internalError:'file already open'.
vranyj1
parents: 903
diff changeset
  5519
            ^ self.
vranyj1
parents: 903
diff changeset
  5520
        ]
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5521
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5522
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5523
    name := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5524
    name := Java as_ST_String:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5525
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5526
    name := self fixFilename:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5527
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5528
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5529
        ('JAVA: opening ' , name) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5530
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5531
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5532
    stream := self fileStreamForReading:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5533
    stream isNil ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5534
        ^ self.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5535
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5536
    stream buffered:false.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5537
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5538
"/    FileOpenConfirmation ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5539
"/        (self confirm:('JAVA Security check\\Opening ''' , name , ''' for reading.\Grant permission ?') withCRs)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5540
"/        ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5541
"/            self throwIOExceptionWithMessage:('no permission to open ' , name , ' for reading').
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5542
"/            ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5543
"/        ]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5544
"/    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5545
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5546
    fileNo := self addOpenFile:stream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5547
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5548
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5549
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5550
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5551
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5552
    fd instVarNamed:'fd' put:fileNo.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5553
904
vranyj1
parents: 903
diff changeset
  5554
    "Created: / 04-01-1998 / 16:47:12 / cg"
vranyj1
parents: 903
diff changeset
  5555
    "Modified: / 28-01-1999 / 17:24:07 / cg"
vranyj1
parents: 903
diff changeset
  5556
    "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
  5557
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5558
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5559
_java_io_FileInputStream_read: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5560
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5561
    <javanative: 'java/io/FileInputStream' name: 'read()I'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5562
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5563
        |file byte|
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5564
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5565
    file := self validateFile:(nativeContext receiver).
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5566
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5567
    file == Stdin ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5568
	file := StdinReplacementFileQuerySignal raiseRequest.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5569
	file isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5570
	    ^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5571
	]
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5572
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5573
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5574
    FileIOTrace ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5575
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5576
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5577
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5578
    byte := file nextByte.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5579
    byte isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5580
	^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5581
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5582
    ^ byte
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5583
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5584
    "Created: / 5.1.1998 / 02:17:08 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5585
    "Modified: / 5.1.1998 / 02:17:25 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5586
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5587
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5588
_java_io_FileInputStream_readBytes: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5589
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5590
    <javanative: 'java/io/FileInputStream' name: 'readBytes'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5591
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5592
    ^ self anyStream_readBytes:nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5593
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5594
    "Modified: / 04-02-1998 / 15:23:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5595
    "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
  5596
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5597
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5598
_java_io_FileOutputStream_close0: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5599
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5600
    <javanative: 'java/io/FileOutputStream' name: 'close0'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5601
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5602
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5603
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5604
    "Modified: / 10-08-2011 / 14:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5605
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5606
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5607
_java_io_FileOutputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5609
    <javanative: 'java/io/FileOutputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5610
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5611
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5612
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5613
    "Created: / 27.1.1998 / 18:16:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5614
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5615
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5616
_java_io_FileOutputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5617
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5618
    <javanative: 'java/io/FileOutputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5619
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5620
    ^ self commonOpen:nativeContext forAppend:false
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5621
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5622
    "Modified: / 07-04-1998 / 19:14:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5623
    "Modified (format): / 10-08-2011 / 14:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5624
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5625
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5626
_java_io_FileOutputStream_openAppend: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5627
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5628
    <javanative: 'java/io/FileOutputStream' name: 'openAppend'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5629
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5630
    ^ 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
  5631
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5632
    "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
  5633
    "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5634
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5635
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5636
_java_io_FileOutputStream_write: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5637
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5638
    <javanative: 'java/io/FileOutputStream' name: 'write'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5639
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5640
     /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5641
     * Writes the specified byte to this file output stream. Implements
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5642
     * the <code>write</code> method of <code>OutputStream</code>.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5643
     *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5644
     * @param      b   the byte to be written.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5645
     * @exception  IOException  if an I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5646
     */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5647
     public native void write(int b) throws IOException;
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5648
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5649
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5650
    | fdobj fd stream b |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5651
    b := nativeContext argAt:1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5652
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5653
    fd    := fdobj instVarNamed: #fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5654
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5655
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5656
        stream nextPut: b asCharacter
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5657
    ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5658
        self throwIOExceptionWithMessage: ex description
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5659
    ]
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5660
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5661
    "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
  5662
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5663
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5664
_java_io_FileOutputStream_writeBytes: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5665
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5666
    <javanative: 'java/io/FileOutputStream' name: 'writeBytes'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5667
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5668
        ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5669
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5670
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5671
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5672
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5673
_java_io_FileSystem_getFileSystem: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5674
    <javanative: 'java/io/FileSystem' name: 'getFileSystem'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5675
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5676
        ^ (self classForName: 'java.io.UnixFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5677
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5678
    OperatingSystem isMSWINDOWSlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5679
        ^ (Java classForName: 'java.io.WinNTFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5680
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5681
    self error: 'Unknown/Unsupported platform'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5683
    "Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5684
    "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5685
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5686
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5687
_java_io_ObjectInputStream_latestUserDefinedLoader: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5688
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5689
    <javanative: 'java/io/ObjectInputStream' name: 'latestUserDefinedLoader'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5690
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5691
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5692
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5693
    * Returns the first non-null class loader (not counting class loaders of
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5694
    * generated reflection implementation classes) up the execution stack, or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5695
    * null if only code from the null class loader is on the stack.  This
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5696
    * method is also called via reflection by the following RMI-IIOP class:
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5697
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5698
    *     com.sun.corba.se.internal.util.JDKClassLoader
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5699
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5700
    * This method should not be removed or its signature changed without
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5701
    * corresponding modifications to the above class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5702
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5703
    // REMIND: change name to something more accurate?
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5704
    private static native ClassLoader latestUserDefinedLoader();
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5705
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5706
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5707
    | ctx cl |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5708
    ctx := nativeContext.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5709
    [ ctx notNil ] whileTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5710
        ctx receiver isJavaObject ifTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5711
            (cl := ctx receiver class classLoader) notNil ifTrue:[
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5712
                "/self breakPoint: #jv info: 'Should not count class loaders of generated reflection implementation classes'.
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5713
                "/Please check"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5714
                ^cl.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5715
            ]                    
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5716
        ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5717
        ctx := ctx sender.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5718
    ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5719
    ^nil
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5720
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5721
    "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
  5722
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5723
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5724
_java_io_ObjectStreamClass_hasStaticInitializer: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5725
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5726
    <javanative: 'java/io/ObjectStreamClass' name: 'hasStaticInitializer'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5727
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5728
    | cls |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5729
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5730
    ^(cls includesSelector: #'<clinit>()V') ifTrue:[1] ifFalse:[0]
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5731
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5732
    "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
  5733
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5734
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5735
_java_io_ObjectStreamClass_initNative: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5737
    <javanative: 'java/io/ObjectStreamClass' name: 'initNative'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5738
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5739
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5740
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5741
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5742
     * Initializes native code.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5743
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5744
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5745
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5746
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5747
    "Created: / 20-12-2010 / 17:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5748
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5749
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5750
_java_io_RandomAccessFile_close0: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5751
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5752
    <javanative: 'java/io/RandomAccessFile' name: 'close0()V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5753
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5754
    ^ self commonClose:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5755
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5756
    "Modified: / 06-07-2012 / 00:09:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5757
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5758
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5759
_java_io_RandomAccessFile_getFilePointer: nativeContext
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5760
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5761
    /**
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5762
     * Returns the current offset in this file.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5763
     *
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5764
     * @return     the offset from the beginning of the file, in bytes,
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5765
     *             at which the next read or write occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5766
     * @exception  IOException  if an I/O error occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5767
     */
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5768
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5769
    <javanative: 'java/io/RandomAccessFile' name: 'getFilePointer()J'>
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5770
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5771
    | file |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5772
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5773
    file := self validateFile:(nativeContext receiver).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5774
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5775
    FileIOTrace ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5776
        ('JAVA: getFilePointer on ' , file pathName) infoPrintCR.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5777
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5778
    ^file position0Based
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5779
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5780
    "Modified: / 06-07-2012 / 12:40:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5781
!
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5782
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5783
_java_io_RandomAccessFile_initIDs: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5784
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5785
    <javanative: 'java/io/RandomAccessFile' name: 'initIDs'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5786
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5787
    "Nothing to do"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5788
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5789
    "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
  5790
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5791
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5792
_java_io_RandomAccessFile_length: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5793
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5794
    <javanative: 'java/io/RandomAccessFile' name: 'length()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5795
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5796
        |file sz|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5797
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5798
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5799
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5800
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5801
	('JAVA: length of ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5802
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5803
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5804
    sz := file size.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5805
    ^ sz.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5806
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5807
    "Created: / 4.2.1998 / 13:27:58 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5808
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5809
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5810
_java_io_RandomAccessFile_open: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5811
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5812
    <javanative: 'java/io/RandomAccessFile' name: 'open'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5813
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5814
    |fs fd nm mode filename dir stream fileNo answer readonly|
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5815
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5816
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5817
    fs := nativeContext receiver.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5818
    fd := fs instVarNamed:'fd'.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5819
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5820
        self halt:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5821
        self internalError:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5822
        ^ self.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5823
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5824
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5825
    nm := nativeContext argAt:1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5826
    nm := Java as_ST_String:nm.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5827
    nm := self fixFilename:nm.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5828
    mode := nativeContext argAt:2.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5829
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5830
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5831
    private static final int O_RDONLY = 1;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5832
    private static final int O_RDWR =   2;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5833
    private static final int O_SYNC =   4;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5834
    private static final int O_DSYNC =  8;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5835
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5836
    readonly := (mode bitAnd:1) == 1.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5837
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5838
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5839
        ('JAVA: opening ' , nm) infoPrintCR.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5840
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5841
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5842
    dir := (filename := nm utf8Encoded asFilename) directory pathName.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5843
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5844
    (PermittedDirectories notNil
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5845
    and:[PermittedDirectories includes:dir]) ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5846
        FileOpenConfirmation ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5847
            answer := Dialog 
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5848
                    confirmWithCancel:('JAVA Security check\\Opening ''' , nm , ''' for read/write.\Grant permission ?') withCRs
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5849
                               labels:#('no' 'grant' 'readonly')
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5850
                               values:#(false true #readonly)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5851
                              default:3.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5852
            answer == false ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5853
                self throwIOExceptionWithMessage:('no permission to open ' , nm , ' for writing').
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5854
                ^ self
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5855
            ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5856
            readonly := (answer == #readonly).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5857
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5858
            readonly ifFalse:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5859
                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5860
                ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5861
                    PermittedDirectories isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5862
                        PermittedDirectories := Set new
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5863
                    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5864
                    PermittedDirectories add:dir.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5865
                ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5866
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5867
        ]
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5868
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5869
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5870
    (filename exists not and:[readonly]) ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5871
        self throwIOExceptionWithMessage:'File ', nm , ' does not exist'
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5872
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5873
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5874
    readonly ifTrue:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5875
        stream := filename readStream.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5876
    ] ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5877
        stream := filename readWriteStream.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5878
        stream isNil ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5879
            self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5880
        ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5881
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5882
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5883
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5884
    fileNo := self addOpenFile:stream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5885
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5886
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5887
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5888
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5889
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5890
    fd instVarNamed:'fd' put:fileNo.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5891
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5892
    "Created: / 04-02-1998 / 00:14:48 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5893
    "Modified: / 12-11-1998 / 21:29:46 / cg"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  5894
    "Modified: / 10-07-2012 / 00:16:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5895
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5896
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5897
_java_io_RandomAccessFile_read: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5898
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5899
    <javanative: 'java/io/RandomAccessFile' name: 'read()I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5900
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5901
        |file byte|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5902
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5903
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5904
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5905
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5906
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5907
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5908
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5909
    byte := file nextByte.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5910
    byte isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5911
	^ -1
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5912
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5913
    ^ byte
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5914
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5915
    "Modified: / 5.1.1998 / 02:17:25 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5916
    "Created: / 27.1.1999 / 19:01:15 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5917
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5918
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5919
_java_io_RandomAccessFile_readBytes: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5920
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5921
    <javanative: 'java/io/RandomAccessFile' name: 'readBytes([BII)I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5922
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5923
    ^ self anyStream_readBytes:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5924
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5925
    "Modified: / 04-02-1998 / 15:23:27 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5926
    "Modified (format): / 06-07-2012 / 00:08:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5927
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5928
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5929
_java_io_RandomAccessFile_seek: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5930
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5931
    <javanative: 'java/io/RandomAccessFile' name: 'seek(J)V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5932
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5933
        |file pos|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5934
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5935
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5936
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5937
    FileIOTrace ifTrue:[
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5938
        ('JAVA: seek on ' , file pathName) infoPrintCR.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5939
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5940
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5941
    pos := nativeContext argAt:1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5942
    file position0Based:pos
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5943
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5944
    "Created: / 04-02-1998 / 13:25:38 / cg"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5945
    "Modified (comment): / 06-07-2012 / 12:39:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5946
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5947
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5948
_java_io_RandomAccessFile_writeBytes: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5949
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5950
    <javanative: 'java/io/RandomAccessFile' name: 'writeBytes([BII)V'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5951
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5952
        ^ self anyStream_writeBytes:nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5953
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5954
    "Modified: / 4.2.1998 / 15:24:20 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5955
    "Created: / 4.2.1998 / 15:24:35 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5956
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  5957
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5958
_java_io_UnixFileSystem_canonicalize0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5960
    <javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5962
    |  path |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5963
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5964
    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
  5965
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5966
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5967
    "Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5968
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5969
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5970
_java_io_UnixFileSystem_checkAccess: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5971
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5972
    <javanative: 'java/io/UnixFileSystem' name: 'checkAccess'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5973
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5974
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5975
     public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5976
     public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5977
     public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5978
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5979
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5980
    | fileobj file access result |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5981
    fileobj := nativeContext argAt:1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5982
    file := (Java as_ST_String:(fileobj instVarNamed:#path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5983
    access := nativeContext argAt:2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5984
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5985
        access == 16r01 ifTrue:[result := file isExecutable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5986
        access == 16r02 ifTrue:[result := file isWritable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5987
        access == 16r04 ifTrue:[result := file isReadable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5988
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5989
        result := false.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5990
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5991
    ^result ifTrue:[1] ifFalse:[0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5992
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  5993
    "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
  5994
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5995
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5996
_java_io_UnixFileSystem_createDirectory: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5997
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5998
    <javanative: 'java/io/UnixFileSystem' name: 'createDirectory'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5999
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6000
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6001
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6002
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6003
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6004
    file exists ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6005
        [
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6006
            file recursiveMakeDirectory.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6007
            ^1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6008
        ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6009
            self throwIOExceptionWithMessage:ex description.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6010
        ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6011
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6012
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6013
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6014
    "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
  6015
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6016
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6017
_java_io_UnixFileSystem_createFileExclusively: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6018
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6019
    <javanative: 'java/io/UnixFileSystem' name: 'createFileExclusively'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6020
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6021
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6022
    file := Java as_ST_String: (nativeContext argAt:1).
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6023
    file := file asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6024
    file exists ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6025
        [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6026
            file createAsEmptyFile
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6027
        ] on: Error do:[:ex|
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6028
            self throwIOExceptionWithMessage:ex description.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6029
        ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6030
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6031
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6032
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6033
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6034
    "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
  6035
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6036
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6037
_java_io_UnixFileSystem_delete0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6038
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6039
    <javanative: 'java/io/UnixFileSystem' name: 'delete0'>
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6040
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6041
      /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6042
      * Delete the file or directory denoted by the given abstract pathname,
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6043
      * returning <code>true</code> if and only if the operation succeeds.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6044
      */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6045
      public abstract boolean delete(File f);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6046
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6047
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6048
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6049
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6050
    file exists ifFalse:[^0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6051
    ^[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6052
        file remove.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6053
        true
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6054
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6055
        false
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6056
    ]
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6057
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6058
    "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
  6059
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6060
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6061
_java_io_UnixFileSystem_getBooleanAttributes0: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6062
    <javanative: 'java/io/UnixFileSystem' name: 'getBooleanAttributes0'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6063
    | file  path  retval  fileSystemClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6064
    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
  6065
    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
  6066
    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
  6067
    fileSystemClass := (self classForName: 'java.io.FileSystem').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6068
    path asFilename exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6069
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_EXISTS')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6070
    ] ifFalse: [ ^ 0. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6071
    path asFilename isDirectory ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6072
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_DIRECTORY')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6073
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6074
    path asFilename isRegularFile ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6075
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_REGULAR')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6076
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6077
    path asFilename isHidden ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6078
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_HIDDEN')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6079
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6080
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6081
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6082
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6083
    "Created: / 10-12-2010 / 14:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6084
    "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
  6085
    "Modified: / 03-11-2011 / 11:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6086
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6087
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6088
_java_io_UnixFileSystem_getLastModifiedTime: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6089
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6090
    <javanative: 'java/io/UnixFileSystem' name: 'getLastModifiedTime'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6091
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6092
    | file  filename  |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6093
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6094
    file := aJavaContext argAt: 1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6095
    filename := (Java as_ST_String: (file instVarNamed: #path)) utf8Encoded asFilename.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6096
    ^filename exists ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6097
        filename modificationTime asMilliseconds
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6098
    ] ifFalse:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6099
        0
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6100
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6101
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6102
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6103
    "Created: / 27-03-2011 / 15:32:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6104
    "Modified: / 06-07-2012 / 08:57:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6105
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6106
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6107
_java_io_UnixFileSystem_getLength: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6108
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6109
    <javanative: 'java/io/UnixFileSystem' name: 'getLength'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6110
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6111
    | file |
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6112
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6113
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6114
    file exists ifFalse:[^0].
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6115
    ^file fileSize
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6116
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6117
    "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
  6118
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6119
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6120
_java_io_UnixFileSystem_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6122
    <javanative: 'java/io/UnixFileSystem' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6124
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6125
    self breakPoint: #libjava
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6126
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6127
    "Created: / 10-12-2010 / 14:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6128
    "Modified: / 10-12-2010 / 20:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6129
!
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6130
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6131
_java_io_UnixFileSystem_list: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6132
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6133
    <javanative: 'java/io/UnixFileSystem' name: 'list'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6134
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6135
    /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6136
    * Returns an array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6137
    * directory denoted by this abstract pathname.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6138
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6139
    * <p> If this abstract pathname does not denote a directory, then this
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6140
    * method returns {@code null}.  Otherwise an array of strings is
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6141
    * returned, one for each file or directory in the directory.  Names
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6142
    * denoting the directory itself and the directory's parent directory are
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6143
    * not included in the result.  Each string is a file name rather than a
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6144
    * complete path.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6145
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6146
    * <p> There is no guarantee that the name strings in the resulting array
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6147
    * will appear in any specific order; they are not, in particular,
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6148
    * guaranteed to appear in alphabetical order.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6149
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6150
    * @return  An array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6151
    *          directory denoted by this abstract pathname.  The array will be
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6152
    *          empty if the directory is empty.  Returns {@code null} if
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6153
    *          this abstract pathname does not denote a directory, or if an
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6154
    *          I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6155
    */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6156
   "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6157
    | fileobj file names jnames |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6158
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6159
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6160
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6161
    file exists ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6162
    file isDirectory ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6163
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6164
    names := file directoryContents.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6165
    jnames := String javaArrayClass new: names size.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6166
    1 to: names size do:[:i|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6167
        jnames at: i put: (Java as_String:(names at: i))
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6168
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6169
    ^jnames
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6170
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6171
    "Modified: / 10-08-2011 / 13:28:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6172
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6173
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6174
_java_io_UnixFileSystem_rename0: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6175
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6176
    <javanative: 'java/io/UnixFileSystem' name: 'rename0(Ljava/io/File;Ljava/io/File;)Z'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6177
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6178
    | file1 file2 |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6179
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6180
    file1 := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6181
    file2 := (Java as_ST_String: ((nativeContext argAt:2) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6182
    file1 exists ifFalse:[^0].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6183
    ^[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6184
        file1 moveTo: file2.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6185
        true
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6186
    ] on: Error do:[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6187
        false
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6188
    ]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6189
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6190
    "Modified: / 09-12-2011 / 20:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6191
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6192
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6193
_java_io_UnixFileSystem_setLastModifiedTime: nativeContext
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6194
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6195
    <javanative: 'java/io/UnixFileSystem' name: 'setLastModifiedTime(Ljava/io/File;J)Z'>
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6196
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6197
    | f mtime file |
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6198
    f := nativeContext argAt: 1.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6199
    mtime := nativeContext argAt: 2.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6200
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6201
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6202
    self breakPoint: #jv. "There is no interface for that in St/X"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6203
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6204
    "Modified: / 05-12-2011 / 23:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6205
!
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6206
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6207
_java_io_UnixFileSystem_setPermission: nativeContext
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6208
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6209
    <javanative: 'java/io/UnixFileSystem' name: 'setPermission'>
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6210
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6211
    /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6212
     * 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
  6213
     * or directory denoted by the given abstract pathname, based on the parameters
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6214
     * enable, access and oweronly.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6215
     */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6216
    public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6217
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6218
    | f access enable owneronly file perms |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6219
    f := nativeContext argAt: 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6220
    access := nativeContext argAt: 2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6221
    enable := (nativeContext argAt: 3) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6222
    owneronly := (nativeContext argAt: 4) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6223
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6224
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6225
    public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6226
    public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6227
    public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6228
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6229
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6230
    access == 16r04 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6231
        perms := owneronly ifFalse:[#(readUser readGroup readOthers)] ifTrue:[#(readUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6232
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6233
    access == 16r02 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6234
        perms := owneronly ifFalse:[#(writeUser writeGroup writeOthers)] ifTrue:[#(writeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6235
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6236
    access == 16r01 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6237
        perms := owneronly ifFalse:[#(executeUser executeGroup executeOthers)] ifTrue:[#(executeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6238
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6239
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6240
        enable ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6241
            file addAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6242
        ] ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6243
            file removeAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6244
        ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6245
        ^ 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6246
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6247
        ^ 0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6248
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6249
    ^0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6250
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6251
    "Modified: / 09-08-2011 / 17:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6252
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6253
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6254
_java_io_UnixFileSystem_setReadOnly: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6255
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6256
    <javanative: 'java/io/UnixFileSystem' name: 'setReadOnly'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6257
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6258
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6259
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6260
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6261
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6262
    file exists ifFalse:[^0].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6263
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6264
        file  removeAccessRights: #(writeUser writeGroup writeOthers).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6265
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6266
    ] on: Error do:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6267
        ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6268
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6269
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6270
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6271
    "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
  6272
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6273
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6274
_java_io_Win32FileSystem_initIDs: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6275
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6276
    <javanative: 'java/io/Win32FileSystem' name: 'initIDs()V'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6277
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6278
    "Intentionally left blank"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6279
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6280
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6281
_java_io_WinNTFileSystem_canonicalize0: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6282
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6283
    <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
  6284
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6285
    
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6286
    |  path |
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6287
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6288
    path := Java as_ST_String: (aJavaContext argAt: 1).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6289
    ^(Java as_String: path asFilename asAbsoluteFilename pathName)
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6290
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6291
    "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
  6292
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6293
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6294
_java_io_WinNTFileSystem_canonicalizeWithPrefix0: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6295
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6296
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalizeWithPrefix0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6297
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6298
    |  path |
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6299
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6300
    path := Java as_ST_String: (nativeContext argAt: 2).
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6301
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6302
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6303
    "Modified: / 01-09-2011 / 21:50:47 / jv"
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6304
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6305
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6306
_java_io_WinNTFileSystem_checkAccess: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6307
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6308
    <javanative: 'java/io/WinNTFileSystem' name: 'checkAccess(Ljava/io/File;I)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6309
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6310
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6311
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6312
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6313
_java_io_WinNTFileSystem_createDirectory: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6314
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6315
    <javanative: 'java/io/WinNTFileSystem' name: 'createDirectory(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6316
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6317
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6318
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6319
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6320
_java_io_WinNTFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6321
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6322
    <javanative: 'java/io/WinNTFileSystem' name: 'createFileExclusively(Ljava/lang/String;)Z'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6323
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6324
    ^ self _java_io_UnixFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6325
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6326
    "Modified: / 18-08-2011 / 17:26:11 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6327
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6328
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6329
_java_io_WinNTFileSystem_delete0: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6330
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6331
    <javanative: 'java/io/WinNTFileSystem' name: 'delete0(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6332
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6333
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6334
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6335
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6336
_java_io_WinNTFileSystem_getBooleanAttributes: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6337
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6338
    <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
  6339
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6340
    ^ self _java_io_UnixFileSystem_getBooleanAttributes0:aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6341
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6342
    "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
  6343
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6344
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6345
_java_io_WinNTFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6346
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6347
    <javanative: 'java/io/WinNTFileSystem' name: 'getLastModifiedTime(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6348
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6349
    ^ self _java_io_UnixFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6350
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6351
    "Modified: / 18-08-2011 / 14:12:07 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6352
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6353
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6354
_java_io_WinNTFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6355
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6356
    <javanative: 'java/io/WinNTFileSystem' name: 'getLength(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6357
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6358
    ^ self _java_io_UnixFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6359
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6360
    "Modified: / 18-08-2011 / 14:15:36 / jv"
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6361
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6362
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6363
_java_io_WinNTFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6364
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6365
    <javanative: 'java/io/WinNTFileSystem' name: 'list(Ljava/io/File;)[Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6366
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6367
    ^ self _java_io_UnixFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6368
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6369
    "Modified: / 01-09-2011 / 21:46:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6370
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6371
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6372
!JavaVM class methodsFor:'native - java.lang'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6373
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6374
_java_lang_ClassLoader_NativeLibrary_load: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6375
    <javanative: 'java/lang/ClassLoader$NativeLibrary' name: 'load'>
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6376
    "/ introduced with jdk1.2 ... (sigh)
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6377
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6378
    | nativeLoader  jLibName  libName  libHandle  index |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  6379
  
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6380
    nativeLoader := nativeContext receiver.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6381
    jLibName := nativeContext argAt: 1.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6382
    libName := (Java as_ST_String: jLibName) asFilename baseName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6383
    (index := SimulatedNativeLibs indexOf: libName) ~~ 0 ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6384
        "/        ('JAVA: builtIn nativeLibLoad simulated: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6385
        nativeLoader instVarNamed: 'handle' put: index.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6386
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6387
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6388
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6389
    (LoadedNativeLibs notNil and: [ LoadedNativeLibs includesKey: libName ]) ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6390
        "/        ('JAVA: native library already loaded: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6391
        nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6392
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6393
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6394
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6395
    (self confirm: 'permission to load native library: ' , libName , ' ?') ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6396
        ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6397
    ].
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6398
    self halt.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6399
    libName asFilename exists ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6400
        ('JAVA: no file to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6401
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6402
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6403
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6404
    libHandle := ObjectFileLoader loadLibrary: libName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6405
    libHandle isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6406
        ('JAVA: failed to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6407
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6408
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6409
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6410
    LoadedNativeLibs isNil ifTrue: [ LoadedNativeLibs := Dictionary new. ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6411
    LoadedNativeLibs at: libName put: libHandle.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6412
    nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6413
    ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6414
    "/ void
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6415
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6416
    "Modified: / 06-02-1998 / 03:12:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6417
    "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
  6418
    "Modified: / 03-11-2011 / 18:25:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6419
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6420
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
  6421
_java_lang_ClassLoader_defineClass1: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6422
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6423
    "
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
  6424
     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
  6425
                                      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
  6426
    
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6427
    | 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
  6428
    className := Java as_ST_String: (nativeContext argAt: 1).
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6429
    "if name starts with java.* or package is signed by something else and we are not signed, throw security exception" 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6430
    "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject" 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6431
    "18.11. mh revised - they really test it against java., totally ignoring boot class path.. That surpsised me"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6432
    (className startsWith: 'java.') ifTrue: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6433
        self throwSecurityExceptionWith: 'className=' , className
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6434
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6435
    cls := nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6436
    b := nativeContext argAt: 2.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6437
    off := nativeContext argAt: 3.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6438
    len := nativeContext argAt: 4.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6439
    pd := nativeContext argAt: 5.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6440
    source := Java as_ST_String: (nativeContext argAt: 6).
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6441
    bs := (off = 0 and: [ len = b size ]) 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6442
        ifTrue: [ b readStream ] 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6443
        ifFalse: [ bs := (b copyFrom: off + 1 to: off + len) readStream ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6444
    [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6445
        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6446
            do: [ cls := JavaClassReader readStream: bs. ]
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6447
    ] on: JavaClassReader invalidClassFormatSignal
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6448
            do: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6449
        :ex | 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6450
        self throwClassFormatError: ex description.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6451
        ^ nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6452
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6453
    self assert: cls classLoader == nativeContext receiver.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6454
     "FIXME: What to do with source?"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6455
    self registry registerClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6456
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6457
        do: [ cls resolveAll. ]."
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6458
    ^ self reflection javaClassObjectForClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6459
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6460
    "Modified: / 08-12-2011 / 20:56:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6461
    "Modified: / 20-02-2012 / 23:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6462
!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6463
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6464
_java_lang_ClassLoader_defineClass1_OLD: nativeContext 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6465
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6466
    "
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6467
     private native Class defineClass1(String name, byte[] b, int off, int len,
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6468
                                      ProtectionDomain pd, String source);"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6469
    
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6470
    | className  b  off  len  pd  source  bs  cls |
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6471
    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
  6472
     "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
  6473
    (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
  6474
        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
  6475
    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6476
    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
  6477
                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
  6478
                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
  6479
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6480
                    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
  6481
                    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
  6482
                    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
  6483
                    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
  6484
                    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
  6485
                    (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
  6486
                        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
  6487
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6488
                    [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6489
                        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
  6490
                            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
  6491
                    ] 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
  6492
                            do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6493
                        :ex | 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6494
                        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
  6495
                        ^ nil.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6496
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6497
                    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
  6498
                     "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
  6499
                    cls.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6500
                ].
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6501
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6502
        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
  6503
    ^ self reflection javaClassObjectForClass: cls.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6504
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6505
    "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
  6506
    "Modified: / 08-12-2011 / 20:56:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6507
    "Created: / 20-02-2012 / 23:10:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6508
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6509
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6510
_java_lang_ClassLoader_findBootstrapClass: nativeContext 
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6511
    <javanative: 'java/lang/ClassLoader' name: 'findBootstrapClass'>
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6512
    "Return class loaded by bootstrap (primordial) classloader or null.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6513
     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
  6514
    
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6515
    | nm  class |
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6516
    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
  6517
    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
  6518
                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
  6519
                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
  6520
                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
  6521
         
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6522
    ^ class notNil 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6523
        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
  6524
        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
  6525
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6526
    "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
  6527
    "Modified: / 02-11-2011 / 20:13:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6528
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6529
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6530
_java_lang_ClassLoader_findLoadedClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6531
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6532
    <javanative: 'java/lang/ClassLoader' name: 'findLoadedClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6533
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6534
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6535
    Return java class object for class with given name
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6536
    loaded by the receiver or null if not found.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6537
    See OpenJDK:
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6538
        src/jdk7/hostspot/src/share/vm/classfile/systemDictionary.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6539
        src/jdk7/hostspot/src/share/vm/prims/jvm.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6540
        
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6541
    "        
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6542
    | nm class |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6543
    nm := Java as_ST_String: (nativeContext argAt:1).
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6544
    class := ClassRegistry classNamed: nm asSlashedJavaClassName loader: nativeContext receiver.
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6545
    
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6546
    ^class notNil ifTrue: [
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6547
        self reflection javaClassObjectForClass:class
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6548
    ] ifFalse:[
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6549
        nil
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6550
    ]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6551
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6552
    "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
  6553
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6554
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6555
_java_lang_ClassLoader_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6556
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6557
    <javanative: 'java/lang/ClassLoader' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6559
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6560
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6562
    "Created: / 09-11-2010 / 20:55:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6563
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6564
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
  6565
_java_lang_ClassLoader_resolveClass0: nativeContext 
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6566
    <javanative: 'java/lang/ClassLoader' name: 'resolveClass0'>
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  6567
    "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
  6568
    "or to be more precise - link class"
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6569
    
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6570
    | jClassLoader  jCls  cls |
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6571
    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
  6572
    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
  6573
    jCls isNil ifTrue: [
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6574
        self throwNullPointerException.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6575
        ^ nil
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6576
    ].
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
  6577
    cls := self reflection classForJavaClassObject: jCls.
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6578
    self assert: cls notNil.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6579
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6580
     do: [ "cls resolveAll." ].
1150
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6581
    ^ cls.
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6582
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6583
    "
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6584
        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
  6585
        * 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
  6586
        * 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
  6587
        * 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
  6588
        * 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
  6589
        * Specification</a>.
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6590
        * </p>
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6591
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6592
        * @param  c
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6593
        *         The class to link
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6594
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6595
        * @throws  NullPointerException
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6596
         *          If <tt>c</tt> is <tt>null</tt>."
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6597
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6598
    "Created: / 07-01-1998 / 13:12:27 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6599
    "Modified: / 20-10-1998 / 19:01:57 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6600
    "Modified: / 28-01-2011 / 15:28:18 / Marcel Hlopko <hlopik@gmail.com>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6601
    "Modified: / 08-12-2011 / 20:52:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6602
    "Modified: / 12-12-2011 / 14:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6603
!
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6604
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6605
_java_lang_ClassLoader_retrieveDirectives: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6606
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6607
    <javanative: 'java/lang/ClassLoader' name: 'retrieveDirectives()Ljava/lang/AssertionStatusDirectives;'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6608
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6609
    | directives |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6610
    directives := (self classForName:'java.lang.AssertionStatusDirectives') new.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6611
    directives instVarNamed:#classes
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6612
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6613
    directives instVarNamed:#classEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6614
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6615
    directives instVarNamed:#packages
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6616
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6617
    directives instVarNamed:#packageEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6618
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6619
    directives instVarNamed:#deflt 
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6620
        put: ((AssertionsEnabled == true) ifTrue:[1] ifFalse:[0]).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6621
    ^directives
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6622
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6623
    "Modified: / 06-07-2012 / 08:49:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6624
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6625
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6626
_java_lang_Class_desiredAssertionStatus0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6627
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6628
    <javanative: 'java/lang/Class' name: 'desiredAssertionStatus0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6630
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6631
    ^AssertionsEnabled == true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6632
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6633
    "Created: / 24-11-2010 / 08:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6634
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6635
1205
vranyj1
parents: 1204
diff changeset
  6636
_java_lang_Class_forName0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6637
    <javanative: 'java/lang/Class' name: 'forName0'>
1205
vranyj1
parents: 1204
diff changeset
  6638
    |nm initialize loader class descriptor|
vranyj1
parents: 1204
diff changeset
  6639
vranyj1
parents: 1204
diff changeset
  6640
    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
  6641
     "Using Class.forName() to get a primitive type is not allowed"
1205
vranyj1
parents: 1204
diff changeset
  6642
    (nm size == 1 and:[JavaDescriptor baseTypes includesKey:nm first]) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6643
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  6644
    ].
vranyj1
parents: 1204
diff changeset
  6645
    (JavaDescriptor baseTypesByTypeName includesKey:nm) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6646
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  6647
    ].
vranyj1
parents: 1204
diff changeset
  6648
    initialize := aJavaContext argAt:2.
vranyj1
parents: 1204
diff changeset
  6649
    loader := aJavaContext argAt:3.
vranyj1
parents: 1204
diff changeset
  6650
    JavaClassReader classLoaderQuerySignal answer:loader do:[
vranyj1
parents: 1204
diff changeset
  6651
        (nm first == $[) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6652
            |nms|
vranyj1
parents: 1204
diff changeset
  6653
vranyj1
parents: 1204
diff changeset
  6654
            nms := nm readStream.
vranyj1
parents: 1204
diff changeset
  6655
            descriptor := JavaDescriptor readFrom:nms
vranyj1
parents: 1204
diff changeset
  6656
                        onError:[^ self throwClassNotFoundException:nm].
vranyj1
parents: 1204
diff changeset
  6657
            nms atEnd ifFalse:[
vranyj1
parents: 1204
diff changeset
  6658
                ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  6659
            ].
vranyj1
parents: 1204
diff changeset
  6660
            class := descriptor javaClass.
vranyj1
parents: 1204
diff changeset
  6661
        ] ifFalse:[
vranyj1
parents: 1204
diff changeset
  6662
            class := self classForName:nm
vranyj1
parents: 1204
diff changeset
  6663
        ]
vranyj1
parents: 1204
diff changeset
  6664
    ].
vranyj1
parents: 1204
diff changeset
  6665
    class isNil ifTrue:[
vranyj1
parents: 1204
diff changeset
  6666
        ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  6667
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6668
    ((initialize ~~ 0) 
1205
vranyj1
parents: 1204
diff changeset
  6669
        and:[class isJavaArrayClass not and:[class isJavaPrimitiveType not]]) 
vranyj1
parents: 1204
diff changeset
  6670
            ifTrue:[
vranyj1
parents: 1204
diff changeset
  6671
                [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
  6672
            ].
1205
vranyj1
parents: 1204
diff changeset
  6673
    ^ JavaVM javaClassObjectForClass:class.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6675
    "Created: / 24-11-2010 / 09:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
vranyj1
parents: 1062
diff changeset
  6676
    "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
  6677
    "Modified: / 02-11-2011 / 19:12:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1205
vranyj1
parents: 1204
diff changeset
  6678
    "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
  6679
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6681
_java_lang_Class_getClassLoader0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6683
    <javanative: 'java/lang/Class' name: 'getClassLoader0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6684
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6685
        "get a classes loader"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6686
    
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6687
    |jClass cls clc loader |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6688
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6689
    jClass := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6690
    cls := self reflection classForJavaClassObject:jClass.
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6691
    cls isJavaPrimitiveType ifTrue:[^nil].
915
vranyj1
parents: 914
diff changeset
  6692
    [ cls isJavaArrayClass ] whileTrue:[cls := cls javaComponentClass].
1063
vranyj1
parents: 1062
diff changeset
  6693
    cls isJavaPrimitiveType ifTrue:[^nil].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6694
    loader := cls classLoader.
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6695
"/    loader isNil ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6696
"/        cls := (Java at:'java/lang/ClassLoader').
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6697
"/        clc notNil ifTrue:[loader := clc instVarNamed: #scl].
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6698
"/    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6699
    ^ loader
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6700
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6701
    "Created: / 25-10-2010 / 22:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6702
    "Modified: / 28-01-2011 / 15:18:54 / Marcel Hlopko <hlopik@gmail.com>"
1063
vranyj1
parents: 1062
diff changeset
  6703
    "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
  6704
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6705
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6706
_java_lang_Class_getComponentType: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6707
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6708
    <javanative: 'java/lang/Class' name: 'getComponentType'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6709
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6710
        |cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6711
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6712
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6713
    cls isJavaPrimitiveType ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6714
        self breakPoint:#jv.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6715
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6716
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6717
    ^ self javaClassObjectForClass:cls javaComponentClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6718
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6719
    "Created: / 12-11-1998 / 18:54:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6720
    "Modified: / 20-12-2010 / 22:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6721
    "Modified: / 28-01-2011 / 15:18:59 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6722
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6724
_java_lang_Class_getConstantPool: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6725
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6726
    <javanative: 'java/lang/Class' name: 'getConstantPool'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6727
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6728
        | class |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6730
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6731
    (class isJavaArrayClass or:[class isJavaPrimitiveType]) ifTrue:[
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6732
        ^nil    
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6733
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6734
    ^ self reflection javaConstantPoolObjectFor:class constantPool.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6736
    "Created: / 21-12-2010 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6737
    "Modified: / 28-02-2011 / 18:05:13 / Marcel Hlopko <hlopik@gmail.com>"
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6738
    "Modified: / 11-12-2011 / 17:28:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6739
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6740
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6741
_java_lang_Class_getDeclaredClasses0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6742
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6743
    <javanative: 'java/lang/Class' name: 'getDeclaredClasses0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6744
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6745
    | class innerPrefix inners |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6746
    class := self reflection classForJavaClassObject: nativeContext receiver.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6747
    innerPrefix := class name , '$'.                
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6748
    inners := Set new.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6749
    JAVA allClassesDo:[:cls|
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6750
        (cls name startsWith: innerPrefix) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6751
            inners add: (self reflection javaClassObjectForClass: cls)
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6752
        ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6753
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6754
    ^(Java at: 'java.lang.Class') javaArrayClass withAll: inners
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6755
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6756
    "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
  6757
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6758
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6759
_java_lang_Class_getDeclaredConstructors0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6760
    <javanative: 'java/lang/Class' name: 'getDeclaredConstructors0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6761
    |class publicOnly constructors|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6762
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6763
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6764
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6765
        ^ (self classForName:'java.lang.reflect.Constructor') javaArrayClass new:0
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6766
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6767
    publicOnly := (aJavaContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6768
    constructors := OrderedCollection new.
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6769
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6770
    class selectorsAndMethodsDo:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6771
            [:selector :method | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6772
            (method isJavaMethod and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6773
                    [ (selector at:1) == $< and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6774
                            [ (selector startsWith:'<init>(') 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6775
                                and:[ publicOnly not or:[ method isPublic ] ] ] ]) 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6776
                ifTrue:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6777
                    [ constructors add:(self reflection javaConstructorObjectForMethod:method) ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6778
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6779
    ^ (self classForName:'java.lang.reflect.Constructor') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6780
        withAll:constructors
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6782
    "Created: / 24-11-2010 / 09:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6783
    "Modified: / 09-02-2011 / 01:24:03 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6784
    "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
  6785
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6786
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6787
_java_lang_Class_getDeclaredFields0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6788
    <javanative: 'java/lang/Class' name: 'getDeclaredFields0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6789
    |javaClassObject class fields publicOnly|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6790
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6791
    class := self reflection 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6792
                classForJavaClassObject:(javaClassObject := aJavaContext argAt:0).
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6793
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6794
        ^(self classForName:'java.lang.reflect.Field') javaArrayClass new:0.
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6795
    ].
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6796
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6797
    publicOnly := (aJavaContext argAt:1) == 1.
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  6798
    fields := class fields , class staticFields.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6799
    publicOnly ifTrue:[ fields := fields select:[:f | f isPublic ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6800
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6801
    fields := fields 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6802
                collect:[:f | self javaFieldObjectForField:f in:javaClassObject ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6803
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6804
    ^ (self classForName:'java.lang.reflect.Field') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6805
        withAll:fields
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6806
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6807
    "Created: / 10-11-2010 / 16:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6808
    "Modified: / 28-01-2011 / 15:19:06 / Marcel Hlopko <hlopik@gmail.com>"
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6809
    "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
  6810
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6811
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6812
_java_lang_Class_getDeclaredMethods0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6813
    <javanative: 'java/lang/Class' name: 'getDeclaredMethods0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6814
    |class publicOnly methods|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6815
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6816
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6817
    publicOnly := (aJavaContext argAt:1) == 1.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6818
    methods := OrderedCollection new.
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6819
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6820
        ^(self classForName:'java.lang.reflect.Method') javaArrayClass new:0
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6821
    ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6822
    JavaClassReader classLoaderQuerySignal answer: class classLoader do:[
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6823
    class selectorsAndMethodsDo:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6824
            [:selector :method | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6825
            (method isJavaMethod and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6826
                    [ (selector at:1) ~~ $< and:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6827
                            [ (selector startsWith:'<init>(') not 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6828
                                and:[ publicOnly not or:[ method isPublic ] ] ] ]) 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6829
                ifTrue:[ methods add:(self javaMethodObjectForMethod:method) ] ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  6830
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6831
    ^ (self classForName:'java.lang.reflect.Method') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6832
        withAll:methods asArray
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6833
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6834
    "Created: / 21-12-2010 / 22:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6835
    "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
  6836
    "Modified: / 04-06-2011 / 17:07:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6837
    "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
  6838
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6839
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6840
_java_lang_Class_getDeclaringClass: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6841
    <javanative: 'java/lang/Class' name: 'getDeclaringClass'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6842
    "
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6843
     /**
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6844
     * 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
  6845
     * 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
  6846
     * 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
  6847
     * 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
  6848
     * 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
  6849
     * type, or void,then this method returns null.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6850
     *
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6851
     * @return the declaring class for this class
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6852
     * @since JDK1.1
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6853
     */"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6854
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6855
    | cls  enclosingClsName  enclosingCls |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6856
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6857
    cls := self reflection classForJavaClassObject: (nativeContext receiver).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6858
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6859
    (cls name includes: $$) ifFalse: [ ^ nil ].
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6860
    enclosingClsName := cls name copyTo: (cls name lastIndexOf: $$) - 1.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6861
    enclosingCls := self classForName: enclosingClsName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6862
    enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6863
    ^ self reflection javaClassObjectForClass: enclosingCls
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6864
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6865
    "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
  6866
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6867
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6868
_java_lang_Class_getEnclosingMethod0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6869
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6870
    <javanative: 'java/lang/Class' name: 'getEnclosingMethod0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6871
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6872
    ^nil "/Not true"
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6873
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6874
    "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
  6875
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6876
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6877
_java_lang_Class_getGenericSignature: nativeContext
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6878
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6879
    <javanative: 'java/lang/Class' name: 'getGenericSignature'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6880
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6881
    |cls sig |
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6882
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6883
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6884
    (cls isJavaPrimitiveType or:[cls isJavaArrayClass]) ifTrue:[^nil].
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6885
    sig := cls signatureJ.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6886
    ^sig notNil ifTrue:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6887
        Java as_String: sig
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6888
    ] ifFalse:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6889
        nil
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6890
    ]
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6891
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6892
    "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
  6893
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6894
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6895
_java_lang_Class_getInterfaces:nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6896
    <javanative: 'java/lang/Class' name: 'getInterfaces'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6897
    |jClass cls interfaces jInterfaces|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6898
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6899
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6900
    cls := self reflection classForJavaClassObject:jClass.
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6901
    cls isJavaPrimitiveType ifTrue:[
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6902
        ^ (self classForName:'java.lang.Class') javaArrayClass new 
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6903
    ].
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6904
    cls isJavaArrayClass ifTrue:[
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6905
        ^ (self classForName:'java.lang.Class') javaArrayClass        
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6906
            with:(self javaClassObjectForClass:(self classForName: 'java.lang.Cloneable'))
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6907
            with:(self javaClassObjectForClass:(self classForName: 'java.io.Serializable'))            
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6908
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6909
    interfaces := cls interfaces.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6910
    interfaces 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6911
        ifNil:[ ^ (self classForName:'java.lang.Class') javaArrayClass new ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6912
    jInterfaces := (self classForName:'java.lang.Class') javaArrayClass 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6913
                new:interfaces size.
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6914
    interfaces 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6915
        withIndexDo:[:iface :idx | jInterfaces at:idx put:(self javaClassObjectForClass:iface) ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6916
    ^ jInterfaces
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6917
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6918
    "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
  6919
    "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
  6920
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6921
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6922
_java_lang_Class_getModifiers: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6923
    <javanative: 'java/lang/Class' name: 'getModifiers'>
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6924
    | cls modifiers |
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6925
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6926
    cls := (self reflection classForJavaClassObject: aJavaContext receiver).
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6927
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6928
        modifiers := ACC_ABSTRACT | ACC_FINAL | ACC_PUBLIC 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6929
    ] ifFalse: [ 
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6930
        "According to OpenJDK JVM, strip ACC_SUPER"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6931
        modifiers := (cls accessFlags & ACC_SUPER bitInvert) & 16r7FFF.
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6932
        "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
  6933
         private bit set, sigh"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6934
        (modifiers & 16r0007) == 0 ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6935
            modifiers := modifiers | ACC_PRIVATE.
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6936
        ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6937
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  6938
    ^modifiers
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6940
    "Created: / 12-11-1998 / 18:54:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6941
    "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
  6942
    "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
  6943
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6945
_java_lang_Class_getName0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6946
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6947
    <javanative: 'java/lang/Class' name: 'getName0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6948
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6949
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6950
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6951
    class := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6952
    class := self reflection classForJavaClassObject:aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6953
    ^ self reflection 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6954
        javaStringObjectForString:class javaName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6955
        interned:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6957
    "Created: / 22-11-2010 / 17:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6958
    "Modified: / 09-02-2011 / 01:06:53 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6959
    "Modified: / 25-02-2011 / 19:00:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6960
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6962
_java_lang_Class_getPrimitiveClass: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6963
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6964
    <javanative: 'java/lang/Class' name: 'getPrimitiveClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6965
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6966
        "get a primitive class by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6967
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6968
    |jClassName className|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6969
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6970
    jClassName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6971
    className := Java as_ST_String:jClassName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6972
    (JavaDescriptor baseTypesByTypeName keys includes: className)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6973
        ifFalse:[self throwClassNotFoundException:className].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6974
    ^self reflection javaClassObjectForClassNamed: className
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6975
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6976
    "Created: / 04-01-1998 / 00:46:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6977
    "Modified: / 28-01-2011 / 15:30:45 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6978
    "Modified: / 03-02-2011 / 21:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6979
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6980
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6981
_java_lang_Class_getProtectionDomain0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6982
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6983
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6984
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6985
    ^(self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6986
        protectionDomain
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6987
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  6988
    "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
  6989
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6990
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6991
_java_lang_Class_getRawAnnotations: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6992
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6993
    <javanative: 'java/lang/Class' name: 'getRawAnnotations'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6994
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  6995
    |class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6996
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6997
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  6998
    class isJavaArrayClass ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  6999
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7000
    ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7001
    class isJavaPrimitiveType ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7002
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7003
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7004
    ^ class runtimeVisibleAnnotationsAsBytesOrNil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7006
    "Created: / 21-12-2010 / 19:35:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7007
    "Modified: / 28-01-2011 / 15:19:20 / Marcel Hlopko <hlopik@gmail.com>"
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7008
    "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
  7009
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7010
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7011
_java_lang_Class_getSuperclass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7012
    <javanative: 'java/lang/Class' name: 'getSuperclass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7013
    "return a classes superclass"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7014
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7015
    | jClass  cls  superCls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7017
    jClass := nativeContext receiver.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7018
    cls := self reflection classForJavaClassObject: jClass.
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7019
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7020
    cls isJavaPrimitiveType ifTrue: [ ^ nil ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7021
    cls isJavaArrayClass ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7022
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7023
    ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7024
    cls isInterface ifTrue: [ ^ nil ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7025
    superCls := cls superclass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7026
    superCls == JavaObject ifTrue: [ ^ nil. ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7027
    ^ self javaClassObjectForClass: superCls
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7028
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7029
    "Created: / 12-01-1998 / 12:38:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7030
    "Modified: / 04-02-1998 / 14:51:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7031
    "Modified: / 28-01-2011 / 14:12:47 / Marcel Hlopko <hlopik@gmail.com>"
915
vranyj1
parents: 914
diff changeset
  7032
    "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
  7033
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7034
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7035
_java_lang_Class_isArray: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7036
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7037
    <javanative: 'java/lang/Class' name: 'isArray'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7039
        ^ (self reflection classForJavaClassObject:nativeContext receiver) isJavaArrayClass 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7040
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7041
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7042
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7043
    "Created: / 12-11-1998 / 18:54:24 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7044
    "Modified: / 20-12-2010 / 23:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7045
    "Modified: / 28-01-2011 / 15:19:24 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7046
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7048
_java_lang_Class_isAssignableFrom: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7049
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7050
    <javanative: 'java/lang/Class' name: 'isAssignableFrom'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7052
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7053
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7054
     * Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7055
     * {@code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7056
     * superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7057
     * {@code Class} parameter. It returns {@code true} if so;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7058
     * otherwise it returns {@code false}. If this {@code Class}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7059
     * object represents a primitive type, this method returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7060
     * {@code true} if the specified {@code Class} parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7061
     * exactly this {@code Class} object; otherwise it returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7062
     * {@code false}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7063
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7064
     * <p> Specifically, this method tests whether the type represented by the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7065
     * specified {@code Class} parameter can be converted to the type
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7066
     * represented by this {@code Class} object via an identity conversion
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7067
     * or via a widening reference conversion. See <em>The Java Language
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7068
     * Specification</em>, sections 5.1.1 and 5.1.4 , for details.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7069
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7070
     * @param cls the {@code Class} object to be checked
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7071
     * @return the {@code boolean} value indicating whether objects of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7072
     * type {@code cls} can be assigned to objects of this class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7073
     * @exception NullPointerException if the specified Class parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7074
     *            null.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7075
     * @since JDK1.1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7076
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7077
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7078
    | clsObj me other |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7079
    clsObj := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7080
    clsObj ifNil:[^self throwNullPointerException].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7081
    me := self reflection classForJavaClassObject: nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7082
    other := self reflection classForJavaClassObject: clsObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7083
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7084
    "/    Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7085
    "/    @code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7086
    "/    superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7087
    "/    {@code Class} parameter.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7089
    ^(other includesBehavior: me)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7090
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7091
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7093
    "Created: / 12-11-1998 / 18:54:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7094
    "Modified: / 05-02-2011 / 23:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7095
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7096
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7097
_java_lang_Class_isInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7098
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7099
    <javanative: 'java/lang/Class' name: 'isInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7100
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7101
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7102
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7103
     * Determines if the specified {@code Object} is assignment-compatible
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7104
     * with the object represented by this {@code Class}.  This method is
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7105
     * the dynamic equivalent of the Java language {@code instanceof}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7106
     * operator. The method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7107
     * {@code Object} argument is non-null and can be cast to the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7108
     * reference type represented by this {@code Class} object without
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7109
     * raising a {@code ClassCastException.} It returns {@code false}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7110
     * otherwise.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7111
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7112
     * <p> Specifically, if this {@code Class} object represents a
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7113
     * declared class, this method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7114
     * {@code Object} argument is an instance of the represented class (or
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7115
     * of any of its subclasses); it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7116
     * this {@code Class} object represents an array class, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7117
     * returns {@code true} if the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7118
     * can be converted to an object of the array class by an identity
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7119
     * conversion or by a widening reference conversion; it returns
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7120
     * {@code false} otherwise. If this {@code Class} object
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7121
     * represents an interface, this method returns {@code true} if the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7122
     * class or any superclass of the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7123
     * implements this interface; it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7124
     * this {@code Class} object represents a primitive type, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7125
     * returns {@code false}.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7126
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7127
     * @param   obj the object to check
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7128
     * @return  true if {@code obj} is an instance of this class
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7129
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7130
     * @since JDK1.1
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7131
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7132
    public native boolean isInstance(Object obj);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7133
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7134
    
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7135
    |jClass cls obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7136
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7137
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7138
    obj isNil ifTrue:[^ 0].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7139
    jClass := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7140
    cls := self reflection classForJavaClassObject:jClass.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7141
    ^self _INSTANCEOF:obj _:cls
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7142
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7143
    "Modified: / 09-02-1998 / 14:56:23 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7144
    "Modified: / 28-01-2011 / 14:12:42 / Marcel Hlopko <hlopik@gmail.com>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7145
    "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
  7146
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7147
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7148
_java_lang_Class_isInterface: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7149
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7150
    <javanative: 'java/lang/Class' name: 'isInterface'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7151
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7152
        "return true, if this class is an interface"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7153
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7154
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7156
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7157
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7158
    cls isJavaClass ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7159
        ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7160
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7161
    cls isInterface ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7162
        ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7163
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7164
    ^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7165
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7166
    "Created: / 12-01-1998 / 12:37:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7167
    "Modified: / 28-01-2011 / 14:12:35 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7168
    "Modified: / 03-02-2011 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7169
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7171
_java_lang_Class_isPrimitive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7173
    <javanative: 'java/lang/Class' name: 'isPrimitive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7174
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7175
        "return true, if this class is builtin primitive class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7176
     (i.e. byteArray, array, string etc."
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7177
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7178
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7179
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7180
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7181
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7182
    ^cls isJavaPrimitiveType 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7183
        ifTrue:[1"true"]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7184
        ifFalse:[0"false"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7186
    "Created: / 09-02-1998 / 14:46:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7187
    "Modified: / 28-01-2011 / 14:12:30 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7188
    "Modified: / 04-02-2011 / 11:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7189
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7191
_java_lang_Class_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7193
    <javanative: 'java/lang/Class' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7194
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7195
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7196
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7198
    "Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7199
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7200
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7201
_java_lang_Class_setProtectionDomain0: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7202
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7203
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7204
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7205
    (self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7206
        protectionDomain: (nativeContext argAt:1)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7207
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7208
    "Created: / 10-08-2011 / 15:20:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7209
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7210
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7211
_java_lang_Compiler_disable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7212
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7213
    <javanative: 'java/lang/Compiler' name: 'disable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7214
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7215
    "Modified: / 09-02-2012 / 22:56:44 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7216
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7217
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7218
_java_lang_Compiler_enable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7219
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7220
    <javanative: 'java/lang/Compiler' name: 'enable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7221
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7222
    "Modified: / 09-02-2012 / 22:57:15 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7223
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7224
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7225
_java_lang_Compiler_registerNatives: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7226
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7227
    <javanative: 'java/lang/Compiler' name: 'registerNatives()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7228
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7229
    "Modified: / 09-02-2012 / 22:56:37 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7230
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7231
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7232
_java_lang_Double_doubleToRawLongBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7234
    <javanative: 'java/lang/Double' name: 'doubleToRawLongBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7236
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7237
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7238
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7239
     * according to the IEEE 754 floating-point 'double
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7240
     * format' bit layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7241
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7242
     * <p>Bit 63 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7243
     * {@code 0x8000000000000000L}) represents the sign of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7244
     * floating-point number. Bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7245
     * 62-52 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7246
     * {@code 0x7ff0000000000000L}) represent the exponent. Bits 51-0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7247
     * (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7248
     * {@code 0x000fffffffffffffL}) represent the significand
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7249
     * (sometimes called the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7250
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7251
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7252
     * {@code 0x7ff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7253
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7254
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7255
     * {@code 0xfff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7256
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7257
     * <p>If the argument is NaN, the result is the {@code long}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7258
     * integer representing the actual NaN value.  Unlike the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7259
     * {@code doubleToLongBits} method,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7260
     * {@code doubleToRawLongBits} does not collapse all the bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7261
     * patterns encoding a NaN to a single 'canonical' NaN
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7262
     * value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7263
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7264
     * <p>In all cases, the result is a {@code long} integer that,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7265
     * when given to the {@link #longBitsToDouble(long)} method, will
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7266
     * produce a floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7267
     * {@code doubleToRawLongBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7268
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7269
     * @param   value   a {@code double} precision floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7270
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7271
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7272
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7273
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7274
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7275
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7276
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7277
    (f = -0.0) ifTrue:[^(1 bitShift: 63)].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7278
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7279
    b := ByteArray streamContents:[:s|Float storeBinaryIEEEDouble:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7280
    ^ LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7281
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7282
    "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
  7283
    "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
  7284
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7285
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7286
_java_lang_Double_longBitsToDouble: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7287
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7288
    <javanative: 'java/lang/Double' name: 'longBitsToDouble'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7289
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7290
        |i aFloat|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7291
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7292
    i := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7293
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7294
    aFloat := Float new.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7295
    UninterpretedBytes isBigEndian ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7296
	aFloat basicAt:1 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7297
	aFloat basicAt:2 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7298
	aFloat basicAt:3 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7299
	aFloat basicAt:4 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7300
	aFloat basicAt:5 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7301
	aFloat basicAt:6 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7302
	aFloat basicAt:7 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7303
	aFloat basicAt:8 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7304
    ] ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7305
	aFloat basicAt:1 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7306
	aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7307
	aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7308
	aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7309
	aFloat basicAt:5 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7310
	aFloat basicAt:6 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7311
	aFloat basicAt:7 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7312
	aFloat basicAt:8 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7313
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7314
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7315
    ^ aFloat.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7316
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7317
    "Created: / 4.1.1998 / 01:45:00 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7318
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7319
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7320
_java_lang_Float_floatToRawIntBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7321
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7322
    <javanative: 'java/lang/Float' name: 'floatToRawIntBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7324
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7325
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7326
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7327
     * according to the IEEE 754 floating-point 'single format' bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7328
     * layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7329
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7330
     * <p>Bit 31 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7331
     * {@code 0x80000000}) represents the sign of the floating-point
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7332
     * number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7333
     * Bits 30-23 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7334
     * {@code 0x7f800000}) represent the exponent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7335
     * Bits 22-0 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7336
     * {@code 0x007fffff}) represent the significand (sometimes called
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7337
     * the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7338
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7339
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7340
     * {@code 0x7f800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7341
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7342
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7343
     * {@code 0xff800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7344
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7345
     * <p>If the argument is NaN, the result is the integer representing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7346
     * the actual NaN value.  Unlike the {@code floatToIntBits}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7347
     * method, {@code floatToRawIntBits} does not collapse all the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7348
     * bit patterns encoding a NaN to a single 'canonical'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7349
     * NaN value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7350
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7351
     * <p>In all cases, the result is an integer that, when given to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7352
     * {@link #intBitsToFloat(int)} method, will produce a
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7353
     * floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7354
     * {@code floatToRawIntBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7355
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7356
     * @param   value   a floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7357
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7358
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7359
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7360
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7361
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7362
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7363
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7364
    (f = -0.0) ifTrue:[^(1 bitShift: 31) ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7365
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7366
    b := ByteArray streamContents:[:s|ShortFloat storeBinaryIEEESingle:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7367
    ^ (LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not) compressed
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7369
    "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
  7370
    "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
  7371
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7372
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7373
_java_lang_Float_intBitsToFloat: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7374
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7375
    <javanative: 'java/lang/Float' name: 'intBitsToFloat(I)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7376
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7377
    |i aFloat|
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7378
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7379
    i := nativeContext argAt:1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7380
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7381
    aFloat := ShortFloat basicNew.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7382
    UninterpretedBytes isBigEndian ifTrue:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7383
        aFloat basicAt:1 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7384
        aFloat basicAt:2 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7385
        aFloat basicAt:3 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7386
        aFloat basicAt:4 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7387
    ] ifFalse:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7388
        aFloat basicAt:1 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7389
        aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7390
        aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7391
        aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7392
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7393
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7394
    ^ aFloat.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7395
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7396
    "Modified: / 13-09-2011 / 20:05:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7397
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7398
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7399
_java_lang_Object_clone: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7401
    <javanative: 'java/lang/Object' name: 'clone'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7402
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7403
        "clone an object"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7404
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7405
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7407
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7408
    rslt := o shallowCopy.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7409
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7410
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7411
    "Created: / 4.1.1998 / 19:39:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7412
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7413
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7414
_java_lang_Object_getClass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7415
    <javanative: 'java/lang/Object' name: 'getClass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7416
    "return an objects class"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7417
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7418
    | o  cls  jClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7419
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7420
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7421
    cls := o class.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7422
    jClass := self javaClassObjectForClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7423
    ^ jClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7425
    "Created: / 6.1.1998 / 18:28:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7426
    "Modified: / 23.1.1998 / 17:48:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7427
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7429
_java_lang_Object_hashCode: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7431
    <javanative: 'java/lang/Object' name: 'hashCode'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7432
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7433
        "identityHash"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7435
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7436
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7437
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7438
    rslt := o identityHash.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7439
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7441
    "Created: / 4.1.1998 / 19:40:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7442
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7443
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7444
_java_lang_Object_notify: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7445
    <javanative: 'java/lang/Object' name: 'notify'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7446
    "wakeup"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7447
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7448
    self notify: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7449
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7450
    "Created: / 06-01-1998 / 21:09:26 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7451
    "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
  7452
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7453
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7454
_java_lang_Object_notifyAll: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7455
    <javanative: 'java/lang/Object' name: 'notifyAll'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7456
    self notifyAll: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7457
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7458
    "Created: / 03-01-1998 / 03:06:56 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7459
    "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
  7460
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7461
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7462
_java_lang_Object_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7463
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7464
    <javanative: 'java/lang/Object' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7466
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7467
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7468
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7469
    "Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7470
    "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7471
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7472
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7473
_java_lang_Object_wait: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7474
    <javanative: 'java/lang/Object' name: 'wait'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7475
    | tmo  handle |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7476
    handle := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7477
    tmo := nativeContext argAt: 1.    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7478
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7479
            waitOn: handle forTimeout: tmo
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7480
            state: #javaWait.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7481
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7482
    "Modified: / 30-12-1998 / 19:20:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7483
    "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
  7484
    "Modified: / 22-11-2011 / 13:17:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7485
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7486
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7487
_java_lang_Package_getSystemPackage0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7488
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7489
    <javanative: 'java/lang/Package' name: 'getSystemPackage0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7490
909
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7491
    "Based on code on OpenJDK, it is ok to return nil here:"
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7492
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7493
    ^nil
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7494
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7495
    "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
  7496
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7497
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7498
_java_lang_ProcessEnvironment_environ: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7499
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7500
    <javanative: 'java/lang/ProcessEnvironment' name: 'environ'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7501
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7502
    | env jenv i|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7503
    env := OperatingSystem getEnvironment.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7504
    jenv :=  ByteArray javaArrayClass new: env size * 2.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7505
    i := 1.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7506
    env keysAndValuesDo:
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7507
        [:name :value|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7508
        jenv 
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7509
            at: i   put: name  asByteArray;
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7510
            at: i+1 put: value asByteArray.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7511
        i := i + 2].
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7512
    ^jenv
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7513
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7514
    "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
  7515
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7516
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7517
_java_lang_ProcessEnvironment_environmentBlock: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7518
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7519
    <javanative: 'java/lang/ProcessEnvironment' name: 'environmentBlock()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7520
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7521
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7522
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7523
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7524
_java_lang_Runtime_freeMemory: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7525
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7526
    <javanative: 'java/lang/Runtime' name: 'freeMemory()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7527
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7528
        "free memory - Returns the number of free bytes"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7529
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7530
    ^ ObjectMemory freeListSpace + ObjectMemory freeSpace
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7531
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7532
    "Created: / 12.1.1998 / 12:59:53 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7533
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7534
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7535
_java_lang_Runtime_gc: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7536
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7537
    <javanative: 'java/lang/Runtime' name: 'gc'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7538
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7539
        "Runs the garbage collector.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7540
     Ignored, since the ST-gc runs all the time."
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7541
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7542
    ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7543
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7544
    "Modified: / 12.1.1998 / 12:58:32 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7545
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7546
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7547
_java_lang_Runtime_runFinalization0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7548
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7549
    <javanative: 'java/lang/Runtime' name: 'runFinalization0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7550
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7551
    Smalltalk garbageCollect
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7552
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7553
    "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
  7554
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7555
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7556
_java_lang_SecurityManager_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7557
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7558
    <javanative: 'java/lang/SecurityManager' name: 'getClassContext'>
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7559
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7560
    /**
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7561
     * Returns the current execution stack as an array of classes.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7562
     * <p>
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7563
     * The length of the array is the number of methods on the execution
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7564
     * stack. The element at index <code>0</code> is the class of the
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7565
     * currently executing method, the element at index <code>1</code> is
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7566
     * the class of that method's caller, and so on.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7567
     *
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7568
     * @return  the execution stack.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7569
     */
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7570
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7571
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7572
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7573
    | classes ctx jclasses |
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7574
    classes := OrderedCollection new.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7575
    ctx := thisContext.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7576
    [ ctx notNil ] whileTrue: [
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7577
        ctx isJavaContext ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7578
            classes add: ctx method javaClass.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7579
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7580
        ctx := ctx sender.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7581
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7582
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7583
    jclasses := (self classForName:'java.lang.Class') javaArrayClass new: classes size.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7584
    1 to: classes size do:[:i|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7585
        jclasses at: i put: (self reflection javaClassObjectForClass: (classes at: i)).
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7586
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7587
    ^jclasses
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7588
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7589
    "Created: / 12-11-1998 / 18:56:06 / cg"
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7590
    "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
  7591
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7592
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7593
_java_lang_Shutdown_halt0: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7594
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7595
    <javanative: 'java/lang/Shutdown' name: 'halt0'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7596
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7597
    AbortOperationRequest raise
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7598
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
  7599
    "Modified: / 06-07-2012 / 13:13:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7600
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7601
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7602
_java_lang_StrictMath_cbrt: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7603
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7604
    <javanative: 'java/lang/StrictMath' name: 'cbrt'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7605
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7606
    ^ JavaMathSupport cbrt: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7607
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7608
    "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
  7609
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7610
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7611
_java_lang_StrictMath_cos: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7612
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7613
    <javanative: 'java/lang/StrictMath' name: 'cos'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7614
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7615
    ^ JavaMathSupport cos: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7616
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7617
    "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
  7618
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7619
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7620
_java_lang_StrictMath_cosh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7621
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7622
    <javanative: 'java/lang/StrictMath' name: 'cosh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7623
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7624
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7625
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7626
     * Returns the hyperbolic cosine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7627
     * The hyperbolic cosine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7628
     * (<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7629
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7630
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7631
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7632
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7633
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7634
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7635
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7636
     * <li>If the argument is infinite, then the result is positive
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7637
     * infinity.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7638
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7639
     * <li>If the argument is zero, then the result is {@code 1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7640
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7641
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7642
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7643
     * @param   x The number whose hyperbolic cosine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7644
     * @return  The hyperbolic cosine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7645
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7646
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7647
    public static native double cosh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7648
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7649
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7650
    ^JavaMathSupport cosh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7651
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7652
    "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
  7653
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7654
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7655
_java_lang_StrictMath_expm1: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7656
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7657
    <javanative: 'java/lang/StrictMath' name: 'expm1'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7658
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7659
    ^ JavaMathSupport expm1: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7660
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7661
    "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
  7662
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7663
895
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7664
_java_lang_StrictMath_floor: nativeContext
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7665
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7666
    <javanative: 'java/lang/StrictMath' name: 'floor'>
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7667
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7668
   ^ JavaMathSupport floor: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7669
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7670
    "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
  7671
!
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7672
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7673
_java_lang_StrictMath_pow: nativeContext
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7674
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7675
    <javanative: 'java/lang/StrictMath' name: 'pow(DD)D'>
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7676
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7677
    ^JavaMathSupport pow: (nativeContext argAt:1) to: (nativeContext argAt:3)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7678
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7679
    "Modified: / 07-09-2011 / 17:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7680
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7681
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7682
_java_lang_StrictMath_sin: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7683
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7684
    <javanative: 'java/lang/StrictMath' name: 'cos'>
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7685
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7686
    ^ JavaMathSupport sin: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7687
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7688
    "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
  7689
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7690
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7691
_java_lang_StrictMath_sinh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7692
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7693
    <javanative: 'java/lang/StrictMath' name: 'sinh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7694
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7695
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7696
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7697
     * Returns the hyperbolic sine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7698
     * The hyperbolic sine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7699
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7700
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7701
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7702
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7703
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7704
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7705
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7706
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7707
     * <li>If the argument is infinite, then the result is an infinity
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7708
     * with the same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7709
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7710
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7711
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7712
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7713
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7714
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7715
     * @param   x The number whose hyperbolic sine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7716
     * @return  The hyperbolic sine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7717
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7718
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7719
    public static native double sinh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7720
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7721
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7722
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7723
    ^ JavaMathSupport sinh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7724
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7725
    "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
  7726
    "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
  7727
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7728
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7729
_java_lang_StrictMath_sqrt: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7730
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7731
    <javanative: 'java/lang/StrictMath' name: 'sqrt(D)D'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7732
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7733
    ^(nativeContext argAt:1) sqrt
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7734
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7735
    "Modified: / 17-07-2012 / 20:53:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7736
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7737
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7738
_java_lang_StrictMath_tanh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7739
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7740
    <javanative: 'java/lang/StrictMath' name: 'tanh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7741
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7742
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7743
     * Returns the hyperbolic tangent of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7744
     * The hyperbolic tangent of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7745
     * (<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
  7746
     * in other words, {@linkplain Math#sinh
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7747
     * sinh(<i>x</i>)}/{@linkplain Math#cosh cosh(<i>x</i>)}.  Note
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7748
     * that the absolute value of the exact tanh is always less than
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7749
     * 1.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7750
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7751
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7752
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7753
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7754
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7755
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7756
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7757
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7758
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7759
     * <li>If the argument is positive infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7760
     * {@code +1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7761
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7762
     * <li>If the argument is negative infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7763
     * {@code -1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7764
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7765
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7766
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7767
     * @param   x The number whose hyperbolic tangent is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7768
     * @return  The hyperbolic tangent of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7769
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7770
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7771
    public static native double tanh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7772
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7773
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7774
    ^ JavaMathSupport tanh: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7775
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7776
    "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
  7777
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7778
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7779
_java_lang_String_intern: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7780
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7781
    <javanative: 'java/lang/String' name: 'intern'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7782
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7783
        |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7784
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7785
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7786
    ^ Java intern:jString
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7787
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7788
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7789
_java_lang_System_arraycopy: nativeContext
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7790
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7791
    <javanative: 'java/lang/System' name: 'arraycopy'>
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7792
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7793
    |srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx|
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7794
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7795
    srcArray := nativeContext argAt:1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7796
    srcArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7797
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7798
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7799
    srcArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7800
        ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7801
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7802
    srcIdx := nativeContext argAt:2.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7803
    dstArray := nativeContext argAt:3.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7804
    dstArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7805
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7806
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7807
    dstArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7808
        ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7809
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7810
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  7811
    srcArrayCC := srcArray class javaComponentClass.
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  7812
    dstArrayCC := dstArray class javaComponentClass.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7813
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7814
    srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType 
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7815
        ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7816
            [srcArrayCC isJavaPrimitiveType
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7817
                ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7818
                    [srcArrayCC ~~ dstArrayCC ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7819
                        [^ self throwArrayStoreException:dstArray]].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7820
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7821
        ifFalse:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7822
            [^ self throwArrayStoreException:dstArray].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7823
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7824
    dstIdx := nativeContext argAt:4.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7825
    count := nativeContext argAt:5.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7826
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7827
    count < 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7828
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)        
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7829
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7830
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7831
    ((srcIdx < 0) or:[srcIdx + count > srcArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7832
        srcArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7833
            srcArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7834
                ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7835
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7836
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7837
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7838
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7839
    ((dstIdx < 0) or:[dstIdx + count > dstArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7840
        dstArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7841
            dstArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7842
                ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7843
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7844
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7845
        ^ self throwArrayIndexOutOfBoundsException:(dstIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7846
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7847
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  7848
    dstEndIdx := dstIdx + count.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7849
    dstIdx := dstIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7850
    srcIdx := srcIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7851
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7852
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7853
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7854
    (srcArray class isBytes and:[dstArray class isBytes]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7855
        dstArray replaceBytesFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7856
    ] ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7857
        dstArrayCC isJavaPrimitiveType ifFalse:[
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  7858
            "Copy from array iff src=dst to avoid overwriting a data when copying"
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7859
            srcArray == dstArray ifTrue:[srcArray := srcArray copy].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7860
            1 to: count do:[:i|
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  7861
                | obj |
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7862
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7863
                obj := srcArray at:srcIdx + i - 1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7864
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7865
                (obj notNil and:[(self canCast: obj class to: dstArrayCC) not]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7866
                    ^ self throwArrayStoreException:dstArray
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  7867
                ].
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7868
                dstArray at: dstIdx + i - 1 put: (srcArray at:srcIdx + i - 1)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7869
            ]
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7870
        ] ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7871
            dstArray replaceFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7872
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7873
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7874
    ^ nil.
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  7875
992
6d3e3d937fda Class loader mess cleanup, more will come later...
vranyj1
parents: 988
diff changeset
  7876
    "Modified: / 08-09-2011 / 15:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7877
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7878
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7879
_java_lang_System_currentTimeMillis: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7880
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7881
    <javanative: 'java/lang/System' name: 'currentTimeMillis'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7882
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7883
        "return the milliseconds since 1.jan.1970"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7884
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7885
    |delta|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7887
    "/ workaround win32 bug (use 01:01:01 as base)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7888
    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
  7889
    delta := delta - 3600 - 60 - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7890
"/    "/ make certain, it fits 64 signed bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7891
"/    delta := delta bitAnd:16r7FFFFFFFFFFFFFFF.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7892
"/    ^ delta max:0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7893
    ^ delta
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7894
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7895
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7896
     JavaVM _System_currentTimeMillis:nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7897
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7898
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7899
    "Modified: / 23.12.1998 / 21:54:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7900
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7901
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7902
_java_lang_System_identityHashCode: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7903
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7904
    <javanative: 'java/lang/System' name: 'identityHashCode'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7905
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7906
        |obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7907
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7908
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7909
    ^ obj identityHash
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7910
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7911
    "Modified: / 12.11.1998 / 18:52:07 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7912
    "Created: / 12.11.1998 / 18:54:00 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7913
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7914
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7915
_java_lang_System_initProperties: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7916
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7917
    <javanative: 'java/lang/System' name: 'initProperties'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7918
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7919
        |props stProps|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7921
    props := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7922
    stProps := self systemProperties.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7924
    "/ recursively invoke myself on the Java HashTable.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7925
    "/ calling 'put' to stuff in the values ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7926
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7927
    stProps keysAndValuesDo:[:key :value |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7928
	|keyObj valueObj|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7930
	keyObj := Java as_String:key.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7931
	valueObj := Java as_String:value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7932
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7933
	props 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7934
	    perform:#'put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7935
	    with:keyObj 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7936
	    with:valueObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7937
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7938
    ^ props
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7940
    "Created: / 3.1.1998 / 14:25:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7941
    "Modified: / 4.1.1998 / 14:23:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7942
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7944
_java_lang_System_mapLibraryName: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7945
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7946
    <javanative: 'java/lang/System' name: 'mapLibraryName'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7947
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7948
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7949
    | name |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7950
    name := Java as_ST_String: (aJavaContext argAt: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7951
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7952
    OperatingSystem isUNIXlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7953
        ^Java as_String: ('lib' , name , '.so').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7954
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7955
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7956
    OperatingSystem isMSWINDOWSlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7957
        ^Java as_String: ( name , '.dll').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7958
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7960
    self error:'Unknown/Unsupported platform'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7962
    "Created: / 09-12-2010 / 18:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7963
    "Modified: / 01-04-2011 / 18:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7964
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7965
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7966
_java_lang_System_nanoTime: nativeContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7967
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7968
    <javanative: 'java/lang/System' name: 'nanoTime'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7969
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7970
    ^ OperatingSystem getMicrosecondTime * 1000
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7971
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7972
    "Modified: / 07-08-2011 / 21:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7973
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7974
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7975
_java_lang_System_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7976
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7977
    <javanative: 'java/lang/System' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7978
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7979
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7980
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7981
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7982
    "Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7983
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7985
_java_lang_System_setErr0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7987
    <javanative: 'java/lang/System' name: 'setErr0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7989
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7990
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7991
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7992
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7993
    self setOpenFile:(self javaConsoleStream ? Stderr) at:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7994
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7995
    nativeContext receiver instVarNamed:'err' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7996
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7997
    "Created: / 18.3.1997 / 15:02:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7998
    "Modified: / 4.1.1998 / 16:21:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7999
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8001
_java_lang_System_setIn0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8003
    <javanative: 'java/lang/System' name: 'setIn0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8005
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8006
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8007
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8008
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8009
    self setOpenFile:Stdin at:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8011
    nativeContext receiver instVarNamed:'in' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8012
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8013
    "Created: / 4.1.1998 / 16:16:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8014
    "Modified: / 4.1.1998 / 16:20:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8015
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8017
_java_lang_System_setOut0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8018
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8019
    <javanative: 'java/lang/System' name: 'setOut0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8020
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8021
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8022
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8023
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8025
    self setOpenFile:(self javaConsoleStream ? Stdout) at:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8026
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8027
    nativeContext receiver instVarNamed:'out' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8028
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8029
    "Created: / 4.1.1998 / 16:18:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8030
    "Modified: / 4.1.1998 / 16:20:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8031
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8032
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8033
_java_lang_Thread_currentThread: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8034
    <javanative: 'java/lang/Thread' name: 'currentThread'>
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8035
    | t  p |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8036
    p := Processor activeProcess.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8037
    t := self javaThreadForSTProcess: p.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8038
    nativeContext sender receiver class name 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8039
        = 'java/util/concurrent/locks/ReentrantLock$NonfairSync' 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8040
            ifTrue: [
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8041
                | owner |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8042
                owner := (nativeContext sender receiver 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8043
                            perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8044
                (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8045
            ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8046
    t notNil ifTrue: [ ^ t ].
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8047
    t := self newThread: p name.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8048
    t instVarNamed: 'tid' put: p id.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8049
    Java addThread: t for: p.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8050
    ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8051
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8052
    "Modified: / 04-12-2011 / 20:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8053
    "Modified: / 09-12-2011 / 12:52:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8054
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8055
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  8056
_java_lang_Thread_holdsLock: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8057
    <javanative: 'java/lang/Thread' name: 'holdsLock'>
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8058
    | obj  mon  thisProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8059
    obj := aJavaContext argAt: 1.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8060
    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
  8061
    mon := self monitorFor: obj.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8062
    thisProcess := Processor activeProcess.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8063
    (mon isOwnedBy: thisProcess) ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8064
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8065
    "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
  8066
    "Modified: / 09-12-2011 / 11:13:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8067
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8068
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8069
_java_lang_Thread_interrupt0: nativeContext 
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8070
    <javanative: 'java/lang/Thread' name: 'interrupt0()V'>
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8071
    | jThread  stProcess |
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8072
    jThread := nativeContext receiver.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8073
    stProcess := self stProcessForJavaThread: jThread.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8074
    self assert: stProcess notNil.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8075
    stProcess javaInterrupt.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8076
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8077
    "Modified: / 02-01-1998 / 21:49:06 / cg"
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8078
    "Created: / 10-04-1998 / 15:21:43 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8079
    "Modified: / 30-11-2011 / 13:36:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8080
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8081
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8082
_java_lang_Thread_isAlive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8083
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8084
    <javanative: 'java/lang/Thread' name: 'isAlive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8086
        "is it alive ?"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8087
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8088
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8089
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8090
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8091
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8092
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8093
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8094
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8095
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8096
	^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8097
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8098
    stProcess isDead ifTrue:[^ 0 "FALSE"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8099
    ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8101
    "Created: / 5.1.1998 / 02:03:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8102
    "Modified: / 6.2.1998 / 02:15:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8103
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8104
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8105
_java_lang_Thread_isInterrupted: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8106
    <javanative: 'java/lang/Thread' name: 'isInterrupted'>
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8107
    "ask if a thread is interrupted (clear interruptState if arg is true)"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8108
    
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8109
    | jThread  stProcess  clearInterrupt  wasInterrupted |
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8110
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8111
    stProcess := self stProcessForJavaThread: jThread.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8112
    self assert: stProcess notNil.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8113
    clearInterrupt := nativeContext argAt: 1.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8114
    wasInterrupted := stProcess isInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8115
    clearInterrupt ~~ 0 ifTrue: [ stProcess clearInterrupted ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8116
    stProcess isDead ifTrue: [ ^ 0 ].
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8117
    wasInterrupted ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8118
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8119
    "Modified: / 02-01-1998 / 21:49:06 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8120
    "Created: / 07-01-1998 / 18:50:26 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8121
    "Modified: / 05-08-2011 / 22:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8122
    "Modified: / 30-11-2011 / 12:22:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8123
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8124
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8125
_java_lang_Thread_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8126
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8127
    <javanative: 'java/lang/Thread' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8129
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8130
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8132
    "Created: / 20-10-2010 / 11:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8133
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8134
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8135
_java_lang_Thread_resume0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8136
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8137
    <javanative: 'java/lang/Thread' name: 'resume0()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8138
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8139
        "yield"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8140
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8141
    |jThread stProcess|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8142
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8143
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8144
    stProcess := JavaVM stProcessForJavaThread:jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8145
    stProcess isNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8146
	ThreadTrace == true ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8147
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8148
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8149
	^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8150
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8151
    stProcess resume
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8152
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8153
    "Created: / 8.1.1998 / 01:06:27 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8154
    "Modified: / 6.2.1998 / 02:15:08 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8155
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8156
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8157
_java_lang_Thread_setPriority0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8159
    <javanative: 'java/lang/Thread' name: 'setPriority0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8161
   |t p prio|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8163
    t := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8164
    p := JavaVM stProcessForJavaThread:t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8165
    prio := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8166
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8167
    p isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8168
        ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8169
            'JAVA [info]: no process yet (in setPriority)' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8170
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8171
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8172
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8173
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8174
    "Modified: / 01-05-2011 / 13:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8175
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8176
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8177
_java_lang_Thread_sleep: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8178
    <javanative: 'java/lang/Thread' name: 'sleep'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8179
    "sleep for some milliseconds "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8180
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8181
    | millis |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8182
    millis := nativeContext argAt: 1.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8183
    millis < 0 ifTrue: [
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8184
        self throwIllegalArgumentException: ('negative timeout: %1 in Thread.sleep' bindWith: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8185
    ].
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8186
    Logger 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8187
        log: ('%1 going to sleep for %2' 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8188
                bindWith: Processor activeProcess printString
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8189
                with: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8190
        severity: #debug
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8191
        facility: #JVM.
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8192
    self sleepForTimeout: millis state: #sleep.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8193
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8194
    "Modified: / 08-01-1999 / 16:42:52 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8195
    "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
  8196
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8197
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8198
_java_lang_Thread_start0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8199
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8200
    <javanative: 'java/lang/Thread' name: 'start0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8201
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8202
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8203
    ^self threadStart: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8204
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8205
    "Modified: / 24-12-1999 / 03:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8206
    "Created: / 22-11-2010 / 17:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8207
    "Modified: / 14-12-2010 / 21:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8208
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8209
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8210
_java_lang_Thread_stop0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8211
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8212
    <javanative: 'java/lang/Thread' name: 'stop0(Ljava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8213
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8214
        "terminate a thread"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8215
    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8216
    | jThread  stProcess  death |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8217
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8218
    stProcess := JavaVM stProcessForJavaThread: jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8219
    stProcess isNil ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8220
        ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8221
            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8222
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8223
        ^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8224
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8225
    stProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8226
    stProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8227
    death := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8228
    stProcess 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8229
        interruptWith: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8230
            JavaVM javaExceptionSignal 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8231
                handle: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8232
                    :ex | 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8233
                    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8234
                    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8235
                    Processor activeProcess terminate
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8236
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8237
                do: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8238
                    ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8239
                        ('JAVA: thread exit: ' , jThread displayString) infoPrintNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8240
                    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8241
                    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8242
                    jThread perform: #'exit()V'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8243
                    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8244
                    self throwException: death.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8245
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8246
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8247
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8248
    "Created: / 08-01-1998 / 13:11:17 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8249
    "Modified: / 24-12-1999 / 02:32:45 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8250
    "Modified: / 01-12-2011 / 18:26:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8251
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8252
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8253
_java_lang_Thread_yield: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8254
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8255
    <javanative: 'java/lang/Thread' name: 'yield()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8256
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8257
        "yield"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8258
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8259
    |jThread stProcess|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8260
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8261
    Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8262
"/    jThread := nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8263
"/    stProcess := JavaVM stProcessForJavaThread:jThread.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8264
"/    stProcess isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8265
"/        ThreadTrace == true ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8266
"/            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8267
"/        ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8268
"/        ^ nil "void"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8269
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8270
"/    stProcess == Processor activeProcess ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8271
"/        Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8272
"/    ] ifFalse:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8273
"/        self halt.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8274
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8275
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8276
    "Created: / 5.1.1998 / 02:03:51 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8277
    "Modified: / 23.12.1998 / 19:19:17 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8278
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8279
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8280
_java_lang_Throwable_fillInStackTrace: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8281
    <javanative: 'java/lang/Throwable' name: 'fillInStackTrace'>
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8282
    | java_lang_Throwable  exceptionObject  list  con |
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8283
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8284
    java_lang_Throwable := Java classNamed: 'java/lang/Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8285
    exceptionObject := nativeContext receiver.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8286
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8287
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8288
    "/ debugging only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8289
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8290
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8291
    (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
  8292
        self error:'Thrown object is not a java.lang.Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8293
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8294
    con := thisContext sender.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8295
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8296
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8297
    "/ we are not interrested in all intermediate Exception frames ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8298
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8299
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8300
    FullExceptionTrace ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8301
        "/ first, skip any JavaVM contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8302
        [ con receiver == exceptionObject ] whileFalse: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8303
        
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8304
        "/ then, all exception-init contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8305
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8306
        [ con receiver == exceptionObject ] whileTrue: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8307
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8308
    list := OrderedCollection new.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8309
    [ con notNil ] whileTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8310
        (con isJavaContext) ifTrue: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8311
            "/ 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
  8312
            "/ cleanup ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8313
            list add: con shallowCopy
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8314
        ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8315
        con := con sender
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8316
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8317
    exceptionObject instVarNamed: 'backtrace' put: (list asArray).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8318
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8319
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8320
    "Created: / 04-01-1998 / 14:27:40 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8321
    "Modified: / 08-05-1998 / 21:29:53 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8322
    "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
  8323
    "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
  8324
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8325
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8326
_java_lang_Throwable_getStackTraceDepth: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8327
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8328
    <javanative: 'java/lang/Throwable' name: 'getStackTraceDepth'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8329
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8330
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8331
    ^(nativeContext receiver instVarNamed: #backtrace) size
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8332
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8333
    "Modified: / 01-05-2011 / 20:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8334
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8335
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8336
_java_lang_Throwable_getStackTraceElement: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8337
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8338
    <javanative: 'java/lang/Throwable' name: 'getStackTraceElement'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8339
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8340
    | throwable index ctx stackTraceElement |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8341
    throwable := nativeContext receiver.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8342
    index :=  nativeContext argAt: 1.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8343
    ctx := (throwable instVarNamed:#backtrace) at: index + 1.
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8344
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8345
    stackTraceElement := (self classForName: 'java.lang.StackTraceElement') new.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8346
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8347
    stackTraceElement 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8348
        instVarNamed: #declaringClass 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8349
        put: (Java as_String:(ctx method javaClass javaName));
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8350
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8351
        instVarNamed: #methodName 
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8352
        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
  8353
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8354
        instVarNamed: #lineNumber 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8355
        put: ctx lineNumber.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8356
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8357
    ctx method javaClass sourceFile notNil ifTrue:[                
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8358
        stackTraceElement        
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8359
            instVarNamed: #fileName 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8360
            put: (Java as_String:(ctx method javaClass sourceFile))
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8361
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8362
    ^ stackTraceElement
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8363
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8364
    "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
  8365
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8366
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8367
_java_lang_UNIXProcess_forkAndExec: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8368
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8369
    <javanative: 'java/lang/UNIXProcess' name: 'forkAndExec'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8370
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8371
    "^ UnimplementedNativeMethodSignal raise"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8372
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8373
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8374
_java_lang_UNIXProcess_initIDs: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8375
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8376
    <javanative: 'java/lang/UNIXProcess' name: 'initIDs'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8377
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8378
    "Nothing to do"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8379
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8380
    "Modified: / 25-06-2011 / 10:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8381
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8382
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8383
_java_lang_UNIXProcess_waitForProcessExit: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8384
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8385
    <javanative: 'java/lang/UNIXProcess' name: 'waitForProcessExit(I)I'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8386
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8387
    "^ UnimplementedNativeMethodSignal raise"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8388
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8389
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8390
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8391
!JavaVM class methodsFor:'native - java.lang.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8392
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8393
_java_lang_reflect_Array_getLength: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8394
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8395
    <javanative: 'java/lang/reflect/Array' name: 'getLength(Ljava/lang/Object;)I'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8396
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8397
    ^(nativeContext argAt: 1) size
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8398
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8399
    "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
  8400
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8401
1151
vranyj1
parents: 1150
diff changeset
  8402
_java_lang_reflect_Array_multiNewArray: nativeContext
vranyj1
parents: 1150
diff changeset
  8403
vranyj1
parents: 1150
diff changeset
  8404
    <javanative: 'java/lang/reflect/Array' name: 'multiNewArray(Ljava/lang/Class;[I)Ljava/lang/Object;'>
vranyj1
parents: 1150
diff changeset
  8405
vranyj1
parents: 1150
diff changeset
  8406
    |componentClass sizes cls array |
vranyj1
parents: 1150
diff changeset
  8407
vranyj1
parents: 1150
diff changeset
  8408
    (nativeContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8409
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8410
        ^nil.
vranyj1
parents: 1150
diff changeset
  8411
    ].
vranyj1
parents: 1150
diff changeset
  8412
    (nativeContext argAt:2) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8413
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8414
        ^nil.
vranyj1
parents: 1150
diff changeset
  8415
    ].
vranyj1
parents: 1150
diff changeset
  8416
vranyj1
parents: 1150
diff changeset
  8417
    componentClass := self reflection 
vranyj1
parents: 1150
diff changeset
  8418
                classForJavaClassObject:(nativeContext argAt:1).
vranyj1
parents: 1150
diff changeset
  8419
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8420
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8421
        ^nil
vranyj1
parents: 1150
diff changeset
  8422
    ].    
vranyj1
parents: 1150
diff changeset
  8423
    sizes := nativeContext argAt:2.
vranyj1
parents: 1150
diff changeset
  8424
    sizes class == SignedIntegerArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8425
        self throwIllegalArgumentException:('sizes arguments not instance of int[] (is: %1)' bindWith: sizes class).
vranyj1
parents: 1150
diff changeset
  8426
        ^nil
vranyj1
parents: 1150
diff changeset
  8427
    ].
vranyj1
parents: 1150
diff changeset
  8428
    sizes size == 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8429
        self throwIllegalArgumentException:('sizes argument has no elements').
vranyj1
parents: 1150
diff changeset
  8430
        ^nil
vranyj1
parents: 1150
diff changeset
  8431
    ].
vranyj1
parents: 1150
diff changeset
  8432
    array := nil.
vranyj1
parents: 1150
diff changeset
  8433
    cls := componentClass.
vranyj1
parents: 1150
diff changeset
  8434
    sizes do:[:size|
vranyj1
parents: 1150
diff changeset
  8435
        | newArray |
vranyj1
parents: 1150
diff changeset
  8436
        size > SmallInteger maxVal ifTrue:[
vranyj1
parents: 1150
diff changeset
  8437
            "This is just for Mauve tests"
vranyj1
parents: 1150
diff changeset
  8438
            self throwExceptionClassName:'java.lang.OutOfMemoryError'
vranyj1
parents: 1150
diff changeset
  8439
                             withMessage:'array size too big'.
vranyj1
parents: 1150
diff changeset
  8440
            ^nil.            
vranyj1
parents: 1150
diff changeset
  8441
        ].
vranyj1
parents: 1150
diff changeset
  8442
        size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8443
            self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8444
                             withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8445
            ^nil
vranyj1
parents: 1150
diff changeset
  8446
        ].
vranyj1
parents: 1150
diff changeset
  8447
        cls := cls javaArrayClass.
vranyj1
parents: 1150
diff changeset
  8448
        newArray := cls new: size.
vranyj1
parents: 1150
diff changeset
  8449
        1 to: size do:[:i|
vranyj1
parents: 1150
diff changeset
  8450
            newArray at:i put: array copy.
vranyj1
parents: 1150
diff changeset
  8451
        ].
vranyj1
parents: 1150
diff changeset
  8452
        array := newArray.
vranyj1
parents: 1150
diff changeset
  8453
    ].
vranyj1
parents: 1150
diff changeset
  8454
    ^array.
vranyj1
parents: 1150
diff changeset
  8455
vranyj1
parents: 1150
diff changeset
  8456
    "Modified: / 22-11-2011 / 10:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
  8457
!
vranyj1
parents: 1150
diff changeset
  8458
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8459
_java_lang_reflect_Array_newArray:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8460
    <javanative: 'java/lang/reflect/Array' name: 'newArray'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8461
    |componentClass size|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8462
1151
vranyj1
parents: 1150
diff changeset
  8463
    (aJavaContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8464
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8465
        ^nil.
vranyj1
parents: 1150
diff changeset
  8466
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8467
    componentClass := self reflection 
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8468
                classForJavaClassObject:(aJavaContext argAt:1).
1151
vranyj1
parents: 1150
diff changeset
  8469
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8470
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8471
        ^nil
vranyj1
parents: 1150
diff changeset
  8472
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8473
    size := aJavaContext argAt:2.
1151
vranyj1
parents: 1150
diff changeset
  8474
    size < 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8475
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8476
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8477
        ^nil
vranyj1
parents: 1150
diff changeset
  8478
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8479
    ^ componentClass javaArrayClass new:size
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8480
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8481
    "Created: / 17-12-2010 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8482
    "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
  8483
    "Modified: / 04-06-2011 / 17:06:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
  8484
    "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
  8485
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8486
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8487
_java_lang_reflect_Array_set: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8488
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8489
    <javanative: 'java/lang/reflect/Array' name: 'set'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8490
1151
vranyj1
parents: 1150
diff changeset
  8491
    | array index value |
vranyj1
parents: 1150
diff changeset
  8492
    array :=  nativeContext at:1.
vranyj1
parents: 1150
diff changeset
  8493
    index := (nativeContext at:2) + 1.    
vranyj1
parents: 1150
diff changeset
  8494
    value :=  nativeContext at:3.    
vranyj1
parents: 1150
diff changeset
  8495
vranyj1
parents: 1150
diff changeset
  8496
    array isJavaArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8497
        self throwIllegalArgumentException:'passed object is not an array'.
vranyj1
parents: 1150
diff changeset
  8498
        ^nil.
vranyj1
parents: 1150
diff changeset
  8499
    ].
vranyj1
parents: 1150
diff changeset
  8500
    index < 1 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8501
        self throwIllegalArgumentException:'index is negative'.
vranyj1
parents: 1150
diff changeset
  8502
        ^nil.
vranyj1
parents: 1150
diff changeset
  8503
    ].
vranyj1
parents: 1150
diff changeset
  8504
    index > array size ifTrue:[
vranyj1
parents: 1150
diff changeset
  8505
        self throwArrayIndexOutOfBoundsException: index.
vranyj1
parents: 1150
diff changeset
  8506
        ^nil.
vranyj1
parents: 1150
diff changeset
  8507
    ].
vranyj1
parents: 1150
diff changeset
  8508
    value isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8509
        array at: index put: nil.
vranyj1
parents: 1150
diff changeset
  8510
        ^nil
vranyj1
parents: 1150
diff changeset
  8511
    ].    
vranyj1
parents: 1150
diff changeset
  8512
    (self canCast: value class to: array class javaComponentClass) ifFalse:[
vranyj1
parents: 1150
diff changeset
  8513
        self throwIllegalArgumentException:'type-incompatible value'.
vranyj1
parents: 1150
diff changeset
  8514
        ^nil.
vranyj1
parents: 1150
diff changeset
  8515
    ].
vranyj1
parents: 1150
diff changeset
  8516
    array at: index put: value.
vranyj1
parents: 1150
diff changeset
  8517
vranyj1
parents: 1150
diff changeset
  8518
    "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
  8519
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8520
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8521
_java_lang_reflect_Proxy_defineClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8522
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8523
    <javanative: 'java/lang/reflect/Proxy' name: 'defineClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8524
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8525
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8526
    private static native Class defineClass0(ClassLoader loader, String name,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8527
                                             byte[] b, int off, int len);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8528
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8529
    | loader name b off len  bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8530
    loader := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8531
    name := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8532
    b := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8533
    off := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8534
    len := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8535
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8536
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8537
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8538
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8539
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8540
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8541
    cls classLoader: loader.
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  8542
    self classRegistry registerClass: cls.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8543
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8544
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8545
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8546
    "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
  8547
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8548
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8549
!JavaVM class methodsFor:'native - java.net'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8550
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8551
_java_net_DatagramPacket_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8552
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8553
    <javanative: 'java/net/DatagramPacket' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8554
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8555
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8556
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8557
    "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
  8558
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8559
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8560
_java_net_Inet4AddressImpl_getHostByAddr: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8561
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8562
    <javanative: 'java/net/Inet4AddressImpl' name: 'getHostByAddr([B)Ljava/lang/String;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8563
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8564
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8565
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8566
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8567
_java_net_Inet4AddressImpl_getLocalHostName: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8568
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8569
    <javanative: 'java/net/Inet4AddressImpl' name: 'getLocalHostName()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8570
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8571
    ^Java as_String: OperatingSystem getHostName
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8572
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8573
    "Modified: / 13-09-2011 / 22:36:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8574
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8575
1084
vranyj1
parents: 1083
diff changeset
  8576
_java_net_Inet4AddressImpl_lookupAllHostAddr: nativeContext
vranyj1
parents: 1083
diff changeset
  8577
vranyj1
parents: 1083
diff changeset
  8578
    <javanative: 'java/net/Inet4AddressImpl' name: 'lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress;'>
vranyj1
parents: 1083
diff changeset
  8579
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8580
    | hostname sockaddr inet4Address |
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8581
    hostname := Java as_ST_String: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8582
    [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8583
        sockaddr := IPSocketAddress hostName: hostname.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8584
    ] on: HostNameLookupError do: [:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8585
        self throwExceptionClassName: 'java.net.UnknownHostException' withMessage: (ex description , '(' , hostname , ')').         
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8586
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8587
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8588
    "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
  8589
     that's fine for now, however"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8590
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8591
    inet4Address := (self classForName:'java.net.Inet4Address') newCleared.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8592
    inet4Address 
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8593
        instVarNamed: #family put: 1; "/IPv4
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8594
        instVarNamed: #address put: (sockaddr address doubleWordAt: 1 MSB: true);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8595
        instVarNamed: #hostName put: (nativeContext argAt:1);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8596
        instVarNamed: #canonicalHostName put: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8597
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8598
    ^(self classForName:'java.net.InetAddress') javaArrayClass with: inet4Address.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8599
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8600
    "Modified: / 08-11-2011 / 10:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8601
!
vranyj1
parents: 1083
diff changeset
  8602
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8603
_java_net_Inet4Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8604
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8605
    <javanative: 'java/net/Inet4Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8606
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8607
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8608
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8609
    "Modified: / 13-09-2011 / 22:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8610
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8611
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8612
_java_net_Inet6Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8613
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8614
    <javanative: 'java/net/Inet6Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8615
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8616
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8617
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8618
    "Modified: / 13-09-2011 / 22:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8619
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8620
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8621
_java_net_InetAddressImplFactory_isIPv6Supported: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8622
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8623
    <javanative: 'java/net/InetAddressImplFactory' name: 'isIPv6Supported'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8624
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8625
    ^ 0 "IPv6 is not supported!!"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8626
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8627
    "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
  8628
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8629
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8630
_java_net_InetAddress_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8631
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8632
    <javanative: 'java/net/InetAddress' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8633
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8634
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8635
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8636
    "Created: / 27-01-1998 / 18:16:40 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8637
    "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
  8638
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8639
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8640
_java_net_NetworkInterface_getAll: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8641
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8642
    <javanative: 'java/net/NetworkInterface' name: 'getAll()[Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8643
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8644
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8645
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8646
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8647
_java_net_NetworkInterface_getByName0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8648
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8649
    <javanative: 'java/net/NetworkInterface' name: 'getByName0(Ljava/lang/String;)Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8650
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8651
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8652
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8653
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8654
_java_net_NetworkInterface_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8655
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8656
    <javanative: 'java/net/NetworkInterface' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8657
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8658
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8659
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8660
    "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
  8661
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8662
1084
vranyj1
parents: 1083
diff changeset
  8663
_java_net_PlainDatagramSocketImpl_bind0: nativeContext
vranyj1
parents: 1083
diff changeset
  8664
vranyj1
parents: 1083
diff changeset
  8665
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'bind0(ILjava/net/InetAddress;)V'>
vranyj1
parents: 1083
diff changeset
  8666
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8667
    | port addr sock fd |
1084
vranyj1
parents: 1083
diff changeset
  8668
vranyj1
parents: 1083
diff changeset
  8669
    port := nativeContext argAt: 1.
vranyj1
parents: 1083
diff changeset
  8670
    addr := nativeContext argAt: 2.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8671
    addr isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8672
        self throwSocketException: 'Passed InetAddress object is null'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8673
        ^nil.    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8674
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8675
    fd := nativeContext receiver instVarNamed: #fd.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8676
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8677
        self throwSocketException: 'Socket closed'.        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8678
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8679
    ].
1084
vranyj1
parents: 1083
diff changeset
  8680
    sock := self validateFile: nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8681
vranyj1
parents: 1083
diff changeset
  8682
    addr := addr perform: #'getAddress()[B'.
vranyj1
parents: 1083
diff changeset
  8683
    addr = #[0 0 0 0] ifTrue:[
vranyj1
parents: 1083
diff changeset
  8684
        addr := nil
vranyj1
parents: 1083
diff changeset
  8685
    ] ifFalse:[
vranyj1
parents: 1083
diff changeset
  8686
        self throwSocketException: 'Only all-interface bind is supported by underlaing socket implementation, sorry'.
vranyj1
parents: 1083
diff changeset
  8687
        ^nil
vranyj1
parents: 1083
diff changeset
  8688
    ].
vranyj1
parents: 1083
diff changeset
  8689
    [
vranyj1
parents: 1083
diff changeset
  8690
        sock bindTo: port address: addr reuseAddress: true.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8691
        nativeContext receiver instVarNamed: #localPort put: sock port.
1084
vranyj1
parents: 1083
diff changeset
  8692
    ] on: Error do:[:ex|
vranyj1
parents: 1083
diff changeset
  8693
        self throwSocketException: 'bind0() failed: ', ex description        
vranyj1
parents: 1083
diff changeset
  8694
    ]
vranyj1
parents: 1083
diff changeset
  8695
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8696
    "Modified: / 07-11-2011 / 21:45:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8697
!
vranyj1
parents: 1083
diff changeset
  8698
vranyj1
parents: 1083
diff changeset
  8699
_java_net_PlainDatagramSocketImpl_datagramSocketClose: nativeContext
vranyj1
parents: 1083
diff changeset
  8700
vranyj1
parents: 1083
diff changeset
  8701
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketClose()V'>
vranyj1
parents: 1083
diff changeset
  8702
vranyj1
parents: 1083
diff changeset
  8703
        |jsock sock|
vranyj1
parents: 1083
diff changeset
  8704
vranyj1
parents: 1083
diff changeset
  8705
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8706
vranyj1
parents: 1083
diff changeset
  8707
    sock := self validateFile:jsock.
vranyj1
parents: 1083
diff changeset
  8708
    sock notNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  8709
	FileIOTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  8710
	    'JAVA: datagram close socket' infoPrintCR
vranyj1
parents: 1083
diff changeset
  8711
	].
vranyj1
parents: 1083
diff changeset
  8712
	sock close.
vranyj1
parents: 1083
diff changeset
  8713
    ].
vranyj1
parents: 1083
diff changeset
  8714
vranyj1
parents: 1083
diff changeset
  8715
    "Modified: / 21.8.1997 / 17:09:40 / cg"
vranyj1
parents: 1083
diff changeset
  8716
    "Created: / 25.1.1998 / 20:04:24 / cg"
vranyj1
parents: 1083
diff changeset
  8717
!
vranyj1
parents: 1083
diff changeset
  8718
vranyj1
parents: 1083
diff changeset
  8719
_java_net_PlainDatagramSocketImpl_datagramSocketCreate: nativeContext
vranyj1
parents: 1083
diff changeset
  8720
vranyj1
parents: 1083
diff changeset
  8721
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketCreate()V'>
vranyj1
parents: 1083
diff changeset
  8722
vranyj1
parents: 1083
diff changeset
  8723
        |jsock fd sock fileNo|
vranyj1
parents: 1083
diff changeset
  8724
vranyj1
parents: 1083
diff changeset
  8725
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8726
vranyj1
parents: 1083
diff changeset
  8727
    fd := jsock instVarNamed:'fd'.
vranyj1
parents: 1083
diff changeset
  8728
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
vranyj1
parents: 1083
diff changeset
  8729
        self halt:'file already open'.
vranyj1
parents: 1083
diff changeset
  8730
        self internalError:'file already open'.
vranyj1
parents: 1083
diff changeset
  8731
        self throwIOExceptionWithMessage:'file already open in socketCreate'.
vranyj1
parents: 1083
diff changeset
  8732
        ^ self.
vranyj1
parents: 1083
diff changeset
  8733
    ].
vranyj1
parents: 1083
diff changeset
  8734
vranyj1
parents: 1083
diff changeset
  8735
    FileOpenTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  8736
        ('JAVA: create datagram socket') infoPrintCR.
vranyj1
parents: 1083
diff changeset
  8737
    ].
vranyj1
parents: 1083
diff changeset
  8738
vranyj1
parents: 1083
diff changeset
  8739
    sock := Socket newUDP.
vranyj1
parents: 1083
diff changeset
  8740
    sock isNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  8741
        self throwIOExceptionWithMessage:'socketCreate failed'.
vranyj1
parents: 1083
diff changeset
  8742
    ].
vranyj1
parents: 1083
diff changeset
  8743
vranyj1
parents: 1083
diff changeset
  8744
    fileNo := self addOpenFile:sock.
vranyj1
parents: 1083
diff changeset
  8745
    fd instVarNamed:'fd' put:fileNo.
vranyj1
parents: 1083
diff changeset
  8746
vranyj1
parents: 1083
diff changeset
  8747
    "Created: / 25-01-1998 / 19:59:25 / cg"
vranyj1
parents: 1083
diff changeset
  8748
    "Modified: / 30-12-1998 / 20:10:38 / cg"
vranyj1
parents: 1083
diff changeset
  8749
    "Modified: / 03-11-2011 / 23:13:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  8750
!
vranyj1
parents: 1083
diff changeset
  8751
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8752
_java_net_PlainDatagramSocketImpl_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8753
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8754
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8755
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8756
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8757
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8758
    "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
  8759
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8760
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8761
_java_net_PlainDatagramSocketImpl_receive0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8762
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8763
    <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
  8764
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8765
    ^ UnimplementedNativeMethodSignal raise
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8766
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8767
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8768
_java_net_PlainDatagramSocketImpl_send: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8769
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8770
    <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
  8771
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8772
        |jsock jdatagramPacket sock ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8773
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8774
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8775
    jdatagramPacket := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8776
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8777
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8778
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8779
	FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8780
	    ('JAVA: socket send') infoPrintCR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8781
	].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8782
	^ -1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8783
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8784
    ^ -1
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8785
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8786
    "Created: / 4.2.1998 / 15:06:20 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8787
    "Modified: / 30.12.1998 / 20:10:16 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8788
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8789
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8790
_java_net_PlainDatagramSocketImpl_socketSetOption: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8791
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8792
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'socketSetOption(ILjava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8793
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8794
        "/ native void socketSetOption (int arg1, java.lang.Object arg2)
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8795
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8796
    |jsock opt optVal sock ok err jSocketOptions|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8797
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8798
    jsock := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8799
    opt := nativeContext argAt:1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8800
    optVal := nativeContext argAt:2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8801
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8802
    sock := self validateFile:jsock.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8803
    sock notNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8804
	FileIOTrace ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8805
	    ('JAVA: socket setOption ' , opt printString) infoPrintCR
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8806
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8807
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8808
	jSocketOptions := Java at:'java.net.SocketOptions'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8809
	(opt == (jSocketOptions instVarNamed:'TCP_NODELAY')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8810
	] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8811
	    (opt == (jSocketOptions instVarNamed:'SO_BINDADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8812
	    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8813
		(opt == (jSocketOptions instVarNamed:'SO_REUSEADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8814
		] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8815
		    (opt == (jSocketOptions instVarNamed:'IP_MULTICAST_IF')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8816
		    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8817
			(opt == (jSocketOptions instVarNamed:'SO_LINGER')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8818
			] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8819
			    (opt == (jSocketOptions instVarNamed:'SO_TIMEOUT')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8820
			    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8821
				self throwIOExceptionWithMessage:'bad arg to setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8822
			    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8823
			]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8824
		    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8825
		]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8826
	    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8827
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8828
	self throwIOExceptionWithMessage:'unimplemented: setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8829
self halt.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8830
	^ nil.  "/ void
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8831
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8832
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8833
    "Created: / 4.2.1998 / 15:06:20 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8834
    "Modified: / 30.12.1998 / 20:10:16 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8835
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8836
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8837
_java_net_PlainSocketImpl_initProto: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8838
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8839
    <javanative: 'java/net/PlainSocketImpl' name: 'initProto'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8840
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8841
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8842
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8843
    "Created: / 12-01-1998 / 12:56:52 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8844
    "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
  8845
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8846
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8847
_java_net_PlainSocketImpl_socketAccept: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8848
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8849
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAccept(Ljava/net/SocketImpl;)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8850
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8851
    |jsock fd newJSock sock newSock fileNo|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8852
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8853
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8854
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8855
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8856
    sock isNil ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8857
        self throwIOExceptionWithMessage:'nil socket in accept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8858
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8859
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8860
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8861
    newJSock := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8862
    fd := newJSock instVarNamed:'fd'.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8863
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8864
        self halt:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8865
        self internalError:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8866
        self throwIOExceptionWithMessage:'socket already open in socketAccept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8867
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8868
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8869
    FileIOTrace ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8870
        'JAVA: socket accept' infoPrintCR
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8871
    ].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8872
    [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8873
        newSock := sock accept.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8874
    ] on: Error do:[:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8875
        self throwSocketException:'accept failed: ' , ex description.        
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8876
        ^nil.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8877
    ].
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8878
    newSock isNil ifTrue:[
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8879
        self throwSocketException:'accept failed'.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8880
        ^nil.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8881
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8882
    fileNo := self addOpenFile:newSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8883
    fd instVarNamed:'fd' put:fileNo.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8884
    newJSock instVarNamed:'localport' put: newSock port.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8885
    newJSock instVarNamed:'port' put: newSock getPeer port
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8886
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8887
    "Created: / 04-02-1998 / 15:26:49 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8888
    "Modified: / 30-12-1998 / 20:10:01 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8889
    "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
  8890
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8891
1110
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8892
_java_net_PlainSocketImpl_socketAvailable: nativeContext
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8893
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8894
    <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
  8895
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8896
        |jSock sock n|
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8897
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8898
    jSock := nativeContext receiver.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8899
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8900
    sock := self validateFile:jSock.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8901
    sock isNil ifTrue:[
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8902
	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
  8903
	^ self.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8904
    ].
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8905
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8906
    n := sock numAvailable.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8907
    ^ n
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8908
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8909
    "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
  8910
    "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
  8911
!
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  8912
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8913
_java_net_PlainSocketImpl_socketBind: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8914
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8915
    <javanative: 'java/net/PlainSocketImpl' name: 'socketBind(Ljava/net/InetAddress;I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8916
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8917
    |jsock jaddr port sock hostName ok err|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8918
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8919
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8920
    jaddr := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8921
    port := nativeContext argAt:2.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8922
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8923
    hostName := jaddr instVarNamed:'hostName'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8924
    hostName isNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8925
        self halt.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8926
    ] ifFalse:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8927
        hostName := Java as_ST_String:hostName
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8928
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8929
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8930
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8931
    sock notNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8932
        FileIOTrace ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8933
            ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8934
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  8935
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8936
        [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8937
            ok := sock bindTo:port address:nil "hostName".
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8938
        ] on: Error do: [:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8939
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8940
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8941
                withMessage:'bind failed: ' , ex description.                                                            
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8942
        ].
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8943
        ok ifFalse:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8944
            err := OperatingSystem lastErrorString.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8945
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8946
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8947
                withMessage:'bind failed: ' , err.                                                            
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8948
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8949
       jsock instVarNamed: #localport put: sock port.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8950
       jsock instVarNamed: #address put: jaddr.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8951
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8952
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8953
    "Created: / 04-02-1998 / 15:06:20 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  8954
    "Modified: / 30-12-1998 / 20:10:16 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  8955
    "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
  8956
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8957
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8958
_java_net_PlainSocketImpl_socketClose0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8959
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8960
    <javanative: 'java/net/PlainSocketImpl' name: 'socketClose0(Z)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8961
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8962
    ^self commonClose: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8963
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8964
    "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
  8965
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8966
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8967
_java_net_PlainSocketImpl_socketConnect: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8968
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8969
    <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
  8970
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8971
    |jsock jaddr port sock addr hostName ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8972
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8973
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8974
    jaddr := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8975
    port := nativeContext argAt:2.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8976
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8977
    hostName := jaddr instVarNamed:'hostName'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8978
    hostName notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8979
        hostName := Java as_ST_String:hostName
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8980
    ] ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8981
        addr := jaddr instVarNamed:'address'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8982
        addr notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8983
            hostName := ByteArray new:4.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8984
            hostName at:4 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8985
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8986
            hostName at:3 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8987
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8988
            hostName at:2 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8989
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8990
            hostName at:1 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8991
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8992
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8993
    hostName isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8994
        self halt.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8995
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8996
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8997
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8998
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8999
        FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9000
            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
  9001
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9002
        SocketConnectConfirmation ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9003
            (PermittedHostConnects isNil 
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9004
            or:[(PermittedHostConnects includes:hostName) not]) ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9005
                (self confirm:'connect to host: ' , hostName printString , ' - ok ?')
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9006
                ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9007
                    self throwIOExceptionWithMessage:'connect permission denied'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9008
                ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9009
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9010
                (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
  9011
                ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9012
                    PermittedHostConnects isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9013
                        PermittedHostConnects := Set new
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9014
                    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9015
                    PermittedHostConnects add:hostName.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9016
                ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9017
            ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9018
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9019
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9020
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9021
            ok := sock connectTo:hostName port:port.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9022
            ok ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9023
                self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed'.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9024
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9025
            jsock instVarNamed: #localport put: sock port.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9026
            jsock instVarNamed: #address put: jaddr.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9027
        ] on: Error do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9028
            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
  9029
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9030
        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9031
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9032
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9033
    "Created: / 25-01-1998 / 20:02:27 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9034
    "Modified: / 30-12-1998 / 20:10:28 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9035
    "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
  9036
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9037
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9038
_java_net_PlainSocketImpl_socketCreate: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9039
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9040
    <javanative: 'java/net/PlainSocketImpl' name: 'socketCreate(Z)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9041
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9042
    |jsock isStream fd sock fileNo|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9043
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9044
    jsock := nativeContext receiver.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9045
    isStream := (nativeContext argAt:1) == 1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9046
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9047
    fd := jsock instVarNamed:'fd'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9048
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9049
        self throwSocketException: 'null fd object'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9050
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9051
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9052
        self halt:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9053
        self internalError:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9054
        self throwSocketException:'socket already open in socketCreate'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9055
        ^ self.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9056
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9057
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9058
    FileOpenTrace ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9059
        ('JAVA: create socket') infoPrintCR.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9060
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9061
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9062
    isStream ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9063
        sock := JavaSocket newTCP
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9064
    ] ifFalse:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9065
        sock := JavaSocket newUDP
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9066
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9067
    sock isNil ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9068
        self throwIOExceptionWithMessage:'socketCreate failed'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9069
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9070
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9071
    (jsock instVarNamed: #serverSocket) notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9072
        "/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
  9073
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9074
            Object primitiveFailureSignal
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9075
        ] on: Object primitiveFailureSignal do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9076
            self throwIOExceptionWithMessage:'cannot set SO_REUSEADDR: ' , ex description.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9077
            ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9078
        ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9079
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9080
    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9081
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9082
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9083
    fileNo := self addOpenFile:sock.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9084
    fd instVarNamed:'fd' put:fileNo.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9085
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9086
    "Created: / 25-01-1998 / 19:59:25 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9087
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9088
    "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
  9089
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9090
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9091
_java_net_PlainSocketImpl_socketGetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9092
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9093
    <javanative: 'java/net/PlainSocketImpl' name: 'socketGetOption(ILjava/lang/Object;)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9094
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9095
    | opt arg sock ret |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9096
    opt := nativeContext argAt: 1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9097
    arg := nativeContext argAt: 2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9098
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9099
    sock := self validateFile: nativeContext receiver.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9100
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9101
"/  TCP_NODELAY = 1;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9102
    opt = 1 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9103
        ret := sock getSocketOption: #TCP_NODELAY.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9104
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9105
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9106
"/  SO_BINDADDR = 15;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9107
    opt = 15 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9108
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9109
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9110
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9111
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9112
"/  SO_REUSEADDR = 4;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9113
    opt = 4 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9114
        ret := sock getSocketOption: #SO_REUSEADDR.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9115
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9116
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9117
"/  IP_TOS = 3;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9118
    opt = 3 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9119
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9120
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9121
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9122
"/  SO_LINGER = 128;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9123
    opt = 128 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9124
        ret := sock getSocketOption:#SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9125
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9126
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9127
"/  SO_TIMEOUT = 4102;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9128
    opt = 4102 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9129
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9130
        ^-1 "/Unsupported                   .
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9131
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9132
"/  SO_SNDBUF = 4097;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9133
    opt = 4097 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9134
        ret := sock getSocketOption: #SO_SNDBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9135
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9136
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9137
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9138
"/  SO_RCVBUF = 4098;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9139
    opt = 4098 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9140
        ret := sock getSocketOption: #SO_RCVBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9141
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9142
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9143
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9144
"/  SO_KEEPALIVE = 8;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9145
    opt = 8 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9146
        ret := sock getSocketOption: #SO_KEEPALIVE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9147
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9148
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9149
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9150
"/  SO_OOBINLINE = 4099;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9151
    opt = 4099 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9152
        ret := sock getSocketOption: #SO_OOBINLINE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9153
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9154
    ]
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9155
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9156
    "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
  9157
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9158
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9159
_java_net_PlainSocketImpl_socketListen: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9160
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9161
    <javanative: 'java/net/PlainSocketImpl' name: 'socketListen(I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9162
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9163
        |jSock time sock ok|
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9164
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9165
    jSock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9166
    time := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9167
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9168
    sock := self validateFile:jSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9169
    sock notNil ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9170
	FileIOTrace ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9171
	    ('JAVA: socket listen with timeout ' , time printString) infoPrintCR.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9172
	].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9173
	ok := sock listenWithBacklog:5.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9174
	ok ifFalse:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9175
	    self throwIOExceptionWithMessage:'listen failed'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9176
	    ^ self.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9177
	].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9178
	time ~~ 0 ifTrue:[
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9179
	    sock readWaitWithTimeoutMs:time
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9180
	]
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9181
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9182
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9183
    "Created: / 4.2.1998 / 15:17:48 / cg"
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9184
    "Modified: / 30.12.1998 / 20:10:46 / cg"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9185
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9186
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9187
_java_net_PlainSocketImpl_socketSetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9188
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9189
    <javanative: 'java/net/PlainSocketImpl' name: 'socketSetOption(IZLjava/lang/Object;)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9190
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9191
    | opt on val sock o arg1 arg2 |
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9192
    opt := nativeContext argAt: 1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9193
    on  := nativeContext argAt: 2.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9194
    val := nativeContext argAt: 3.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9195
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9196
    sock := self validateFile: nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9197
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9198
"/  TCP_NODELAY = 1;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9199
    opt = 1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9200
        o := #TCP_NODELAY.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9201
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9202
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9203
"/  SO_BINDADDR = 15;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9204
    opt = 15 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9205
        ^self "/Unsupported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9206
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9207
            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9208
"/  SO_REUSEADDR = 4;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9209
    opt = 4 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9210
        o := #SO_REUSEADDR.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9211
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9212
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9213
"/  IP_TOS = 3;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9214
    opt = 3 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9215
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9216
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9217
"/  SO_LINGER = 128;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9218
    opt = 128 ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9219
        o := #SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9220
        arg1 := (on == 1).
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9221
        arg2 := val instVarNamed: #value.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9222
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9223
"/  SO_TIMEOUT = 4102;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9224
    opt = 4102 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9225
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9226
                   .
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9227
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9228
"/  SO_SNDBUF = 4097;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9229
    opt = 4097 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9230
        o := #SO_SNDBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9231
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9232
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9233
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9234
"/  SO_RCVBUF = 4098;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9235
    opt = 4098 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9236
        o := #SO_RCVBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9237
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9238
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9239
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9240
"/  SO_KEEPALIVE = 8;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9241
    opt = 8 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9242
        o := #SO_KEEPALIVE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9243
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9244
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9245
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9246
"/  SO_OOBINLINE = 4099;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9247
    opt = 4099 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9248
        o := #SO_OOBINLINE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9249
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9250
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9251
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9252
    [
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9253
        sock setSocketOption: o argument: arg1 argument: arg2.   
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9254
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9255
        self throwSocketException: 'Error setting socket option: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9256
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9257
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9258
    "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
  9259
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9260
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9261
_java_net_SocketInputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9262
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9263
    <javanative: 'java/net/SocketInputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9264
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9265
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9266
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9267
    "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
  9268
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9269
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9270
_java_net_SocketInputStream_socketRead0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9271
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9272
    <javanative: 'java/net/SocketInputStream' name: 'socketRead0(Ljava/io/FileDescriptor;[BIII)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9273
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9274
    | fdObj data off len timeout sock nread |
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9275
    fdObj   := nativeContext argAt:1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9276
    data    := nativeContext argAt:2.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9277
    off     := nativeContext argAt:3.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9278
    len     := nativeContext argAt:4.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9279
    timeout := nativeContext argAt:5.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9280
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9281
    fdObj isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9282
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9283
        ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9284
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9285
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9286
    sock := self validateFile: fdObj.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9287
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9288
    timeout ~~ 0 ifTrue:[            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9289
        [
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9290
            (sock readWaitWithTimeout: timeout) ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9291
                self throwExceptionClassName:'java.net.SocketTimeoutException' withMessage: 'Read timed out'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9292
                ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9293
            ].          
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9294
        ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9295
            self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9296
        ]
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9297
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9298
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9299
    [
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9300
        nread := sock nextAvailableBytes: len into: data startingAt: off + 1
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9301
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9302
        self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9303
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9304
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9305
    ^nread
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9306
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9307
    "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
  9308
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9309
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9310
_java_net_SocketOutputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9311
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9312
    <javanative: 'java/net/SocketOutputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9313
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9314
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9315
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9316
    "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
  9317
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9318
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9319
_java_net_SocketOutputStream_socketWrite0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9320
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9321
    <javanative: 'java/net/SocketOutputStream' name: 'socketWrite0(Ljava/io/FileDescriptor;[BII)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9322
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9323
    | fdObj data off len  sock |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9324
    fdObj   := nativeContext argAt:1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9325
    data    := nativeContext argAt:2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9326
    off     := nativeContext argAt:3.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9327
    len     := nativeContext argAt:4.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9328
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9329
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9330
    fdObj isNil ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9331
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9332
        ^ -1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9333
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9334
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9335
    sock := self validateFile: fdObj.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9336
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9337
    [
1136
2a94c9946e7e Fixes in socket read/write
vranyj1
parents: 1135
diff changeset
  9338
        sock nextPutBytes: len from: data startingAt: off + 1.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9339
    ] on: Error do:[:ex|
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9340
        self throwIOExceptionWithMessage: 'Error when writing: ', ex description.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9341
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9342
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9343
    "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
  9344
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9345
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9346
!JavaVM class methodsFor:'native - java.nio'!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9347
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9348
_java_nio_Bits_copyFromByteArray: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9349
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9350
    static native void copyFromByteArray(Object src, long srcPos, long dstAddr,
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9351
                                         long length);
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9352
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9353
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9354
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9355
    <javanative: 'java/nio/Bits' name: 'copyFromByteArray(Ljava/lang/Object;JJJ)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9356
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9357
    | src srcPos dstAddr length |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9358
    src := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9359
    srcPos := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9360
    dstAddr := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9361
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9362
    SimulatedNativeMemory  bcopy: dstAddr length: length from: src offset: srcPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9363
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9364
    "Modified: / 11-07-2012 / 10:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9365
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9366
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9367
_java_nio_Bits_copyToByteArray: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9368
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9369
    static native void copyToByteArray(long srcAddr, Object dst, long dstPos,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9370
                                       long length);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9371
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9372
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9373
    <javanative: 'java/nio/Bits' name: 'copyToByteArray(JLjava/lang/Object;JJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9374
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9375
    | srcAddr dst dstPos length |
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9376
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9377
    srcAddr := nativeContext argAt: 1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9378
    dst := nativeContext argAt: 3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9379
    dstPos := nativeContext argAt: 4.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9380
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9381
    SimulatedNativeMemory bcopy: srcAddr length: length into: dst offset: dstPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9382
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9383
    "Modified: / 11-07-2012 / 10:34:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9384
! !
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9385
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9386
!JavaVM class methodsFor:'native - java.security'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9387
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9388
_java_security_AccessController_doPrivileged: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9389
    <javanative: 'java/security/AccessController' name: 'doPrivileged'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9390
    "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
  9391
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9392
    | retval |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9393
    
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9394
    JavaVM privilegedAccessQuery answer: true do: [
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9395
        retval := (aJavaContext argAt: 1) perform: #'run()Ljava/lang/Object;'.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9396
    ].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9397
    ^retval
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9398
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9399
    "Created: / 20-10-2010 / 12:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1017
23971b5214d8 removed useless infoPrintCR
hlopkmar
parents: 1016
diff changeset
  9400
    "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
  9401
    "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
  9402
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9403
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9404
_java_security_AccessController_getStackAccessControlContext: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9405
    <javanative: 'java/security/AccessController' name: 'getStackAccessControlContext'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9406
    "/ introduced with jdk1.2
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9407
    "/ supposed to do more here ...
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9408
    
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9409
    ^nil.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9410
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9411
    "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
  9412
    "Modified: / 09-10-2011 / 23:40:46 / Marcel Hlopko <hlopik@gmail.com>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9413
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9414
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9415
!JavaVM class methodsFor:'native - java.sql'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9416
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9417
_java_sql_DriverManager_getCallerClassLoader: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9418
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9419
    <javanative: 'java/sql/DriverManager' name: 'getCallerClassLoader()Ljava/lang/ClassLoader;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9420
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9421
    ^nativeContext 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9422
        sender sender 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9423
        receiver class theNonMetaclass
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9424
        classLoader
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9425
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9426
    "Modified: / 05-12-2011 / 11:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9427
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9428
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9429
!JavaVM class methodsFor:'native - java.text'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9430
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9431
_java_text_Bidi_nativeBidiChars: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9432
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9433
    <javanative: 'java/text/Bidi' name: 'nativeBidiChars(Ljava/text/Bidi;[CI[BIII)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9434
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9435
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9436
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9437
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9438
!JavaVM class methodsFor:'native - java.util'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9439
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9440
_java_util_ResourceBundle_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9441
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9442
    <javanative: 'java/util/ResourceBundle' name: 'getClassContext'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9443
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9444
    "returns an array filled with the contextChain receivers classes.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9445
     What an ugly, messy interface."
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9446
    
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9447
    |chain con cls jClass|
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9448
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9449
    chain := OrderedCollection new.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9450
    con := thisContext sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9451
    [
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9452
        con notNil 
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9453
            and:[con receiver isMethod not or:[con receiver isJavaMethod not]]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9454
    ] whileTrue:[con := con sender.].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9455
    con := con sender sender.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9456
    [con notNil] whileTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9457
        (true) "con isJavaContext" ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9458
            cls := con receiver class.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9459
            cls isMeta ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9460
                "/ t'was a static method
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9461
                cls := cls soleInstance
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9462
            ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9463
            cls isJavaClass ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9464
                jClass := self reflection javaClassObjectForClass:cls.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9465
                chain add:jClass.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9466
            ]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9467
        ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9468
        con := con sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9469
    ].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9470
    ^(self classForName:'java.lang.Class') javaArrayClass withAll: chain
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9471
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9472
    "Created: / 05-01-1998 / 02:47:00 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9473
    "Modified: / 24-12-1998 / 00:34:57 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9474
    "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
  9475
    "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
  9476
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9477
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9478
_java_util_TimeZone_getSystemTimeZoneID: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9479
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9480
    <javanative: 'java/util/TimeZone' name: 'getSystemTimeZoneID'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9481
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9482
    "JV@2011-06-25: TODO: finish, returning nil here means GMT"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9483
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9484
    ^ nil
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9485
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9486
    "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
  9487
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9488
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9489
!JavaVM class methodsFor:'native - java.util.concurrent.atomic'!
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9490
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9491
_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8: nativeContext
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9492
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9493
    <javanative: 'java/util/concurrent/atomic/AtomicLong' name: 'VMSupportsCS8'>
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9494
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9495
    "Should be safe - say we don't support lockless updates"        
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9496
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9497
    ^ 0
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9498
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9499
    "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
  9500
! !
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9501
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9502
!JavaVM class methodsFor:'native - java.util.jar'!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9503
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9504
_java_util_jar_JarFile_getMetaInfEntryNames: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9505
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9506
    <javanative: 'java/util/jar/JarFile' name: 'getMetaInfEntryNames'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9507
    "
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9508
    private native String[] getMetaInfEntryNames();
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9509
    "
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9510
    | zipArchive entries jentries |
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9511
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9512
    zipArchive := ZipCache at: (nativeContext receiver instVarNamed: #jzfile).
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9513
    entries := zipArchive entries select:[:entry|entry size > 9 and:[entry startsWith: 'META-INF/']].    
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9514
    jentries := Java java_lang_String javaArrayClass new: entries size.
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9515
    1 to: entries size do:[:i|
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9516
        jentries at: i put: (Java as_String: (entries at: i))
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9517
    ].
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9518
    ^jentries
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9519
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9520
    "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
  9521
! !
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9522
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9523
!JavaVM class methodsFor:'native - java.util.zip'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9524
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9525
_java_util_zip_Adler32_updateBytes: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9526
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9527
    <javanative: 'java/util/zip/Adler32' name: 'updateBytes'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9528
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9529
    ^ UnimplementedNativeMethodSignal raise
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9530
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9531
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9532
_java_util_zip_CRC32_updateBytes: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9533
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9534
    <javanative: 'java/util/zip/CRC32' name: 'updateBytes(I[BII)I'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9535
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9536
    | crc b off len |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9537
    crc := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9538
    b   := nativeContext argAt: 2.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9539
    off := nativeContext argAt: 3.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9540
    len := nativeContext argAt: 4.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9541
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9542
    ^ZipStream crc32BytesIn:b from:off + 1  to: off + len crc:crc
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9543
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9544
    "Modified: / 05-12-2011 / 00:41:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9545
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9546
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9547
_java_util_zip_Deflater_init: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9548
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9549
    <javanative: 'java/util/zip/Deflater' name: 'init(IIZ)J'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9550
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9551
    ^ UnimplementedNativeMethodSignal raise
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9552
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9553
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9554
_java_util_zip_Deflater_initIDs: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9555
    <javanative: 'java/util/zip/Deflater' name: 'initIDs'>
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9556
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9557
    "Nothing to do here"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9558
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9559
    "Modified: / 08-12-2011 / 21:11:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9560
    "Modified: / 10-05-2012 / 17:03:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9561
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9562
1083
vranyj1
parents: 1081
diff changeset
  9563
_java_util_zip_Inflater_end: nativeContext
vranyj1
parents: 1081
diff changeset
  9564
vranyj1
parents: 1081
diff changeset
  9565
    <javanative: 'java/util/zip/Inflater' name: 'end(J)V'>
vranyj1
parents: 1081
diff changeset
  9566
vranyj1
parents: 1081
diff changeset
  9567
     "
vranyj1
parents: 1081
diff changeset
  9568
    private native static void reset(long addr);
vranyj1
parents: 1081
diff changeset
  9569
    "
vranyj1
parents: 1081
diff changeset
  9570
    | addr inflater |
vranyj1
parents: 1081
diff changeset
  9571
    addr := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
  9572
    inflater := ZipInflaters at: addr.
vranyj1
parents: 1081
diff changeset
  9573
    inflater end.
vranyj1
parents: 1081
diff changeset
  9574
vranyj1
parents: 1081
diff changeset
  9575
    "Modified: / 03-11-2011 / 22:51:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1081
diff changeset
  9576
!
vranyj1
parents: 1081
diff changeset
  9577
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9578
_java_util_zip_Inflater_getBytesRead: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9579
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9580
    <javanative: 'java/util/zip/Inflater' name: 'getBytesRead(J)J'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9581
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9582
    | addr inflater |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9583
    addr := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9584
    inflater := ZipInflaters at: addr.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9585
    ^inflater bytesRead.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9586
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9587
    "Modified: / 05-12-2011 / 00:56:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9588
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9589
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9590
_java_util_zip_Inflater_getBytesWritten: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9591
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9592
    <javanative: 'java/util/zip/Inflater' name: 'getBytesWritten'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9593
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9594
    | addr inflater |
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9595
    addr := nativeContext argAt: 1.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9596
    inflater := ZipInflaters at: addr.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9597
    ^inflater bytesWritten.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9598
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9599
    "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
  9600
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9601
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9602
_java_util_zip_Inflater_inflateBytes: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9603
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9604
    <javanative: 'java/util/zip/Inflater' name: 'inflateBytes'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9605
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9606
    private native int inflateBytes(long addr, byte[] b, int off, int len)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9607
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9608
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9609
    | addr b off len inflater ret |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9610
    addr := nativeContext argAt: 1."long takes 2 slots"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9611
    b := nativeContext argAt: 3.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9612
    off := nativeContext argAt: 4.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9613
    len := nativeContext argAt: 5.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9614
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9615
    inflater := ZipInflaters at: addr.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9616
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9617
    ret := inflater inflate: b offset: off length: len inflater: nativeContext receiver.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9618
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9619
    ^ret.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9621
    "Created: / 30-04-2011 / 23:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9622
    "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
  9623
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9624
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9625
_java_util_zip_Inflater_init: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9626
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9627
    <javanative: 'java/util/zip/Inflater' name: 'init'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9629
    
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9630
    | nowrap inflater |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9631
    nowrap := nativeContext argAt:1.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9632
    inflater := JavaZipSupport inflaterFor: self.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9633
    inflater init: nowrap.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9634
    ZipInflaters add: inflater.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9635
    ^ZipInflaters size.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9636
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9637
    "Created: / 01-02-1998 / 20:14:01 / cg"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9638
    "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
  9639
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9640
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9641
_java_util_zip_Inflater_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9642
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9643
    <javanative: 'java/util/zip/Inflater' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9644
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9645
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9646
    "Nothing to do, used only to register natives"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9648
    "Created: / 30-04-2011 / 21:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9649
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9650
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9651
_java_util_zip_Inflater_reset: nativeContext
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9652
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9653
    <javanative: 'java/util/zip/Inflater' name: 'reset'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9654
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9655
    private native static void reset(long addr);
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9656
    "
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9657
    | addr inflater |
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9658
    addr := nativeContext argAt: 1.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9659
    inflater := ZipInflaters at: addr.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9660
    inflater reset.
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9661
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9662
    "Created: / 01-02-1998 / 20:14:13 / cg"
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9663
    "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
  9664
!
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9665
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9666
_java_util_zip_ZipEntry_initFields: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9667
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9668
    <javanative: 'java/util/zip/ZipEntry' name: 'initFields'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9669
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9670
        | entry jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9671
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9672
    entry := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9673
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9674
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9675
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9676
    entry 
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9677
        instVarNamed: #name     put: (Java as_String: zmember fileName);
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9678
        instVarNamed: #time     put: -1"zmember lastModFileTime";
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9679
        instVarNamed: #crc      put: zmember crc32;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9680
        instVarNamed: #size     put: zmember uncompressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9681
        instVarNamed: #csize    put: zmember compressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9682
        instVarNamed: #method   put: zmember compressionMethod;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9683
        instVarNamed: #extra    put: zmember extraField;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9684
        instVarNamed: #comment  put: (zmember fileComment ifNotNil:[Java as_String: zmember fileComment]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9685
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9686
    "Created: / 01-04-2011 / 13:04:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9687
    "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
  9688
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9689
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9690
_java_util_zip_ZipEntry_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9691
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9692
    <javanative: 'java/util/zip/ZipEntry' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9694
        "hopefully nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9696
    "Created: / 01-04-2011 / 13:02:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9697
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9698
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9699
_java_util_zip_ZipFile_close: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9700
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9701
    <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
  9702
1083
vranyj1
parents: 1081
diff changeset
  9703
    | jzfile zar |
vranyj1
parents: 1081
diff changeset
  9704
    jzfile := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
  9705
    zar := ZipCache at: jzfile.
vranyj1
parents: 1081
diff changeset
  9706
    zar close.
vranyj1
parents: 1081
diff changeset
  9707
    ZipCache at: jzfile put: nil.
vranyj1
parents: 1081
diff changeset
  9708
vranyj1
parents: 1081
diff changeset
  9709
    "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
  9710
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9711
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9712
_java_util_zip_ZipFile_freeEntry: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9713
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9714
    <javanative: 'java/util/zip/ZipFile' name: 'freeEntry'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9715
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9716
    | zipArchiveIndex  zipEntryIndex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9717
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9718
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9719
    zipArchiveIndex := nativeContext at: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9720
    zipEntryIndex := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9721
    zipEntryIndex = 0 ifFalse: [ ZipEntryCache at: zipEntryIndex put: nil ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9723
    "Modified: / 01-05-2011 / 13:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9724
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9725
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9726
_java_util_zip_ZipFile_getCSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9727
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9728
    <javanative: 'java/util/zip/ZipFile' name: 'getCSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9730
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9731
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9732
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9733
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9734
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9735
    ^zmember compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9737
    "Created: / 30-04-2011 / 21:50:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9738
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9739
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9740
_java_util_zip_ZipFile_getEntry: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9741
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9742
    <javanative: 'java/util/zip/ZipFile' name: 'getEntry'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9743
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  9744
    | zipArchive  filename  member |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9745
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9746
    zipArchive := ZipCache at: (nativeContext at: 1).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9747
    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
  9748
    member := (zipArchive findMember: filename).
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9749
    member isNil ifTrue: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9750
        ^ 0 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9751
    ] ifFalse: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9752
        ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9753
            ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9754
            ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9755
        ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9756
    ]
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9757
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9758
    "Created: / 27-03-2011 / 16:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9759
    "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
  9760
    "Modified: / 18-08-2011 / 19:44:56 / jv"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9761
    "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
  9762
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9763
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9764
_java_util_zip_ZipFile_getMethod: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9765
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9766
    <javanative: 'java/util/zip/ZipFile' name: 'getMethod'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9768
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9769
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9770
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9771
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9773
    ^zmember compressionMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9775
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9776
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9777
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9778
_java_util_zip_ZipFile_getNextEntry: nativeContext
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9779
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9780
    <javanative: 'java/util/zip/ZipFile' name: 'getNextEntry(JI)J'>
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9781
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9782
    | zipArchive  index i |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9783
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9784
    zipArchive := ZipCache at: (nativeContext at: 1).
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9785
    index := nativeContext at: 3.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9786
    i := 0.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9787
    zipArchive zipMembersDo:[:member |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9788
        index == i ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9789
            ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9790
                ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9791
                ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9792
            ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9793
        ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9794
        i := i + 1.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9795
    ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9796
    ^0
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9797
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9798
    "Modified: / 05-12-2011 / 11:19:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9799
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9800
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9801
_java_util_zip_ZipFile_getSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9803
    <javanative: 'java/util/zip/ZipFile' name: 'getSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9805
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9806
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9807
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9808
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9809
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9810
    ^zmember uncompressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9812
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9813
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9814
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9815
_java_util_zip_ZipFile_getTotal: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9817
    <javanative: 'java/util/zip/ZipFile' name: 'getTotal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9818
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9819
    | zar |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9820
    zar := ZipCache at: (nativeContext at: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9821
    ^ zar entries size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9822
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9823
    "Modified: / 01-05-2011 / 13:31:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9824
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9825
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9826
_java_util_zip_ZipFile_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9828
    <javanative: 'java/util/zip/ZipFile' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9829
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9830
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9831
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9833
    "Created: / 23-03-2011 / 19:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9834
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9835
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9836
_java_util_zip_ZipFile_open: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9837
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9838
    <javanative: 'java/util/zip/ZipFile' name: 'open'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9839
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9840
    | path  mode  lastModTime  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9841
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9842
    path := Java as_ST_String: (nativeContext at: 1).
1281
b46adbe75503 Some cleanup
vranyj1
parents: 1275
diff changeset
  9843
    "/(path endsWith:'.jar') ifFalse:[self breakPoint: #jv]. 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9844
    mode := nativeContext at: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9845
    lastModTime := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9846
    result := path asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9847
    result ifNil: [ JavaVM throwZipException ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  9848
    ^[ 
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  9849
        ZipCache indexOf: ( ZipCache add: (ZipArchive readingFrom: result readStream) ) 
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  9850
    ] on: Error do:[:ex|
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  9851
        self throwIOExceptionWithMessage: 'Cannot open zip file: ', ex description
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  9852
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9853
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9854
    "Modified: / 01-04-2011 / 15:35:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1281
b46adbe75503 Some cleanup
vranyj1
parents: 1275
diff changeset
  9855
    "Modified: / 14-12-2011 / 18:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9856
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9857
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9858
_java_util_zip_ZipFile_read: aJavaContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9859
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9860
    <javanative: 'java/util/zip/ZipFile' name: 'read'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9861
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9862
    
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9863
    | jzfile jzentry pos b off len zar zmember bytesToRead |
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9864
    jzfile := aJavaContext argAt: 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9865
    jzentry := aJavaContext argAt: 3. "first arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9866
    pos := aJavaContext argAt: 5. "jzentry arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9867
    b := aJavaContext argAt: 7.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9868
    off := aJavaContext argAt: 8.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9869
    len := aJavaContext argAt: 9.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9870
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9871
    zar := ZipCache at: jzfile.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9872
    zmember := ZipEntryCache at: jzentry.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9873
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9874
    bytesToRead := len min: (zmember compressedSize - pos).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9875
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9876
    ^zar nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off + 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9877
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9878
    "Created: / 30-04-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9879
    "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
  9880
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9881
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9882
!JavaVM class methodsFor:'native - old-style'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9884
_AccessController_beginPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9885
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9887
    "Created: / 27.1.1998 / 18:18:11 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9888
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9889
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9890
_AccessController_endPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9891
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9893
    "Created: / 27.1.1998 / 18:18:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9894
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9895
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9896
_AudioDevice_audioClose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9897
    |device fd stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9898
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9899
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9900
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9901
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9902
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9903
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9904
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9905
		stream close.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9906
		device instVarNamed:'dev' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9907
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9908
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9909
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9911
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9912
    "Modified: / 13.1.1998 / 18:08:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9913
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9914
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9915
_AudioDevice_audioOpen:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9916
    |f stream fileNo|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9917
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9918
    NoAudio ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9919
	Transcript showCR:'JAVA: audio disabled'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9920
	^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9921
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9923
    Stream streamErrorSignal handle:[:ex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9924
	Stream streamErrorSignal handle:[:ex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9925
	    stream := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9926
	    ex return.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9927
	] do:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9928
	    stream := SoundStream writing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9929
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9930
    ] do:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9931
	stream := SoundStream writing.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9932
	stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9933
	    stream setSampleRate:8000.
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
    stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9937
"/        ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9939
	f := '/dev/audio' asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9940
	f exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9941
	    Transcript showCR:'JAVA: neither SoundStream nor /dev/audio available'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9942
	    ^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9943
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9944
	stream := f readWriteStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9945
	stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9946
	    Transcript showCR:'JAVA: /dev/audio exists, but cannot be opened'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9947
	    ^ -1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9948
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9949
	fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9950
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9951
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9952
    fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9953
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9954
    FileOpenTrace ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9955
	('JAVA: opened audioDevice as FD ' , fileNo printString) infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9956
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9957
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9958
    ^ fileNo
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9960
    "Created: / 10.1.1998 / 15:45:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9961
    "Modified: / 14.10.1998 / 15:20:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9962
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9963
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9964
_AudioDevice_audioWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9965
    |device fd stream bytes count|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9966
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9967
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9968
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9969
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9970
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9971
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9972
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9973
		bytes := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9974
		count := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9975
		stream nextPutBytes:count from:bytes startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9976
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9977
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9978
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9979
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9980
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9981
    "Modified: / 13.1.1998 / 18:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9982
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9984
_BigInteger_plumbInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9985
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9987
    "Modified: / 12.11.1998 / 19:23:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9988
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9989
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9990
_ColorModel_deletepData:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9991
    "/ void deletepData ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9992
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9993
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  9994
    "Created: / 12.11.1998 / 19:22:05 / cg"
761
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
_ColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9998
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9999
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10000
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10001
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10003
_Constructor_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10004
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10006
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10007
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10008
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10009
    "Created: / 27.1.2000 / 02:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10010
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10011
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10012
_Constructor_newInstance:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10013
    "/ java.lang.Object newInstance (java.lang.Object[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10014
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10015
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10017
    "Modified: / 27.1.2000 / 02:53:55 / cg"
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
_Double_doubleToLongBits:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10021
    |f i|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10022
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10023
    f := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10025
    UninterpretedBytes isBigEndian ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10026
	i := f basicAt:8. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10027
	i := i bitOr:((f basicAt:7) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10028
	i := i bitOr:((f basicAt:6) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10029
	i := i bitOr:((f basicAt:5) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10030
	i := i bitOr:((f basicAt:4) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10031
	i := i bitOr:((f basicAt:3) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10032
	i := i bitOr:((f basicAt:2) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10033
	i := i bitOr:((f basicAt:1) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10034
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10035
	i := f basicAt:1. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10036
	i := i bitOr:((f basicAt:2) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10037
	i := i bitOr:((f basicAt:3) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10038
	i := i bitOr:((f basicAt:4) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10039
	i := i bitOr:((f basicAt:5) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10040
	i := i bitOr:((f basicAt:6) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10041
	i := i bitOr:((f basicAt:7) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10042
	i := i bitOr:((f basicAt:8) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10043
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10045
    ^ i.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10046
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10047
    "Created: / 4.1.1998 / 01:39:12 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10048
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10049
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10050
_Double_valueOf0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10051
    |s d|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10052
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10053
    s := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10054
    s notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10055
	s := Java as_ST_String:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10056
	d := Float readFrom:s onError:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10057
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10058
    d isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10059
	self throwNumberFormatException.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10060
	"/ not reached
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10061
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10063
    ^ d
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10064
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10065
    "Modified: / 8.8.1997 / 12:03:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10066
    "Created: / 7.1.1998 / 11:09:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10067
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10069
_Field_get:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10070
    "/ java.lang.Object get (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10071
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10072
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10073
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10074
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10075
    "Created: / 27.1.2000 / 03:04:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10076
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10078
_Field_getBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10079
    "/ boolean getBoolean (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10081
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10082
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10083
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10084
    "Created: / 27.1.2000 / 03:05:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10085
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10086
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10087
_Field_getByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10088
    "/ byte getByte (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10089
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10090
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10091
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10092
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10093
    "Created: / 27.1.2000 / 03:05:30 / cg"
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
_Field_getChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10097
    "/ char getChar (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10099
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10101
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10102
    "Created: / 27.1.2000 / 03:03:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10103
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10104
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10105
_Field_getDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10106
    "/ double getDouble (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10108
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10110
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10111
    "Created: / 27.1.2000 / 03:07:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10112
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10113
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10114
_Field_getFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10115
    "/ float getFloat (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10117
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10118
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10119
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10120
    "Created: / 27.1.2000 / 03:05:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10121
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10122
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10123
_Field_getInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10124
    "/ int getInt (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10126
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10127
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10128
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10129
    "Created: / 27.1.2000 / 03:04:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10130
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10132
_Field_getLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10133
    "/ long getLong (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10135
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10136
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10137
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10138
    "Created: / 27.1.2000 / 03:05:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10139
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10141
_Field_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10142
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10144
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10145
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10146
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10147
    "Created: / 27.1.2000 / 03:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10148
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10149
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10150
_Field_getShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10151
    "/ unsigned short getShort (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10153
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10155
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10156
    "Created: / 27.1.2000 / 03:07:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10157
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10159
_Field_set:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10160
    "/ void set (java.lang.Object java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10161
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10162
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10164
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10165
    "Created: / 27.1.2000 / 03:04:33 / cg"
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
_Field_setBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10169
    "/ void setBoolean (java.lang.Object boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10171
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10173
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10174
    "Created: / 27.1.2000 / 03:06:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10175
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10176
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10177
_Field_setByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10178
    "/ void setByte (java.lang.Object byte)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10179
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10180
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10181
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10182
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10183
    "Created: / 27.1.2000 / 03:06:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10184
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10186
_Field_setChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10187
    "/ void setChar (java.lang.Object char)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10188
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10189
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10191
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10192
    "Created: / 27.1.2000 / 03:03:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10193
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10194
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10195
_Field_setDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10196
    "/ void setDouble (java.lang.Object double)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10198
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10199
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10200
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10201
    "Created: / 27.1.2000 / 03:04:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10202
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10204
_Field_setFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10205
    "/ void setFloat (java.lang.Object float)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10206
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10207
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10208
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10209
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10210
    "Created: / 27.1.2000 / 03:06:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10211
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10213
_Field_setInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10214
    "/ void setInt (java.lang.Object int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10215
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10216
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10217
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10218
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10219
    "Created: / 27.1.2000 / 03:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10220
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10222
_Field_setLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10223
    "/ void setLong (java.lang.Object long)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10225
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10227
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10228
    "Created: / 27.1.2000 / 03:06:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10229
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10230
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10231
_Field_setShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10232
    "/ void setShort (java.lang.Object unsigned short)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10234
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10236
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10237
    "Created: / 27.1.2000 / 03:03:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10238
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10240
_FileDescriptor_initSystemFD:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10241
    |descriptor fileNo idx myStream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10243
    descriptor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10244
    fileNo := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10246
    fileNo == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10247
	myStream := Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10248
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10249
	fileNo == 1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10250
	   myStream := JavaConsoleStream ? Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10251
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10252
	    fileNo == 2 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10253
		myStream := JavaConsoleStream ? Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10254
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10255
		self halt:'invalid fileNo given'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10256
		self internalError:'invalid fileNo given'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10257
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10258
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10259
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10261
    self setOpenFile:myStream at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10263
    descriptor instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10264
    ^ descriptor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10266
    "Modified: / 27.1.1998 / 18:15:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10267
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10269
_FileDescriptor_valid:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10270
    "/ boolean valid ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10271
    |descriptor fileNo stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10273
    descriptor := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10274
    fileNo := descriptor instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10275
    stream := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10276
    stream isNil ifTrue:[^ 0]. "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10277
    stream isOpen ifFalse:[^ 0].  "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10279
    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10281
    "Modified: / 11.12.1998 / 13:02:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10282
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10284
_FileInputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10285
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10287
    "Created: / 4.1.1998 / 17:45:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10288
    "Modified: / 4.2.1998 / 15:20:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10289
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10291
_FileInputStream_skip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10292
    "/ long skip (long)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10293
    |file nSkip nSkipped|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10295
    file := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10296
    nSkip := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10298
    file == Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10299
	file := StdinReplacementFileQuerySignal raiseRequest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10300
	file isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10301
	    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10302
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10303
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10305
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10306
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10307
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10309
    file skip:nSkip.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10310
    ^ nSkip
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10312
    "Modified: / 27.1.1999 / 20:36:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10313
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10315
_FileOutputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10316
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10318
    "Created: / 13.1.1998 / 09:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10319
    "Modified: / 4.2.1998 / 15:20:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10320
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10322
_File_canRead0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10323
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10325
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10326
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10327
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10328
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10330
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10331
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10332
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10334
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10335
	(f := path asFilename) isReadable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10336
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10337
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10338
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10339
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10341
    "Created: / 4.1.1998 / 18:09:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10342
    "Modified: / 27.1.1999 / 18:57:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10343
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10345
_File_canWrite0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10346
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10348
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10349
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10350
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10351
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10352
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10353
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10354
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10355
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10356
	(f := path asFilename) isWritable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10357
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10358
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10359
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10360
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10362
    "Created: / 4.2.1998 / 00:19:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10363
    "Modified: / 27.1.1999 / 18:57:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10364
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10365
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10366
_File_canonPath:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10367
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10369
    |jPath path realPath|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10370
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10371
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10372
    jPath isNil ifTrue:[^ jPath].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10374
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10375
    realPath := path asFilename pathName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10377
    ^ Java as_String:realPath
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10379
    "Created: / 27.1.1998 / 18:35:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10380
    "Modified: / 27.1.1998 / 21:36:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10381
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10382
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10383
_File_delete0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10384
    "/ boolean delete0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10385
    |oldFile oldPath oldF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10387
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10388
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10389
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10391
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10392
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10393
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10394
    oldF exists ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10395
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10396
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10397
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10398
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Delete of ''' , oldPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10399
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10400
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10401
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10403
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10404
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10405
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10406
	oldF delete.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10407
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10408
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10409
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10411
    "Modified: / 30.12.1998 / 20:15:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10412
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10414
_File_exists0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10415
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10417
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10418
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10419
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10420
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10421
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10422
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10423
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10424
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10425
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10426
	    ^ 1 "TRUE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10427
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10428
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10429
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10431
    "Created: / 5.1.1998 / 02:07:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10432
    "Modified: / 27.1.1999 / 18:57:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10433
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10434
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10435
_File_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10436
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10438
    "Created: / 27.1.1998 / 18:25:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10439
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10440
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10441
_File_isAbsolute:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10442
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10444
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10445
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10446
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10447
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10448
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10449
	(f := path asFilename) isAbsolute ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10450
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10451
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10452
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10453
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10455
    "Created: / 11.1.1998 / 09:54:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10456
    "Modified: / 20.10.1998 / 20:59:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10457
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10459
_File_isDirectory0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10460
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10462
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10463
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10464
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10465
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10466
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10467
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10468
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10469
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10470
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10471
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10472
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10473
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10474
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10476
    "Created: / 7.1.1998 / 10:31:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10477
    "Modified: / 27.1.1999 / 18:58:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10480
_File_isFile0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10481
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10483
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10484
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10485
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10486
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10487
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10488
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10489
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10490
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10491
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10492
	    f isDirectory ifFalse:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10493
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10494
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10495
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10497
    "Created: / 11.1.1998 / 11:40:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10498
    "Modified: / 27.1.1999 / 18:58:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10499
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10501
_File_lastModified0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10502
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10504
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10505
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10506
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10507
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10508
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10509
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10510
	    ^ f modificationTime getMilliseconds.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10511
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10512
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10513
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10515
    "Created: / 4.2.1998 / 16:50:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10516
    "Modified: / 20.10.1998 / 21:00:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10517
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10519
_File_length0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10520
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10522
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10523
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10524
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10525
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10526
	    thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10527
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10528
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10529
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10530
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10531
	    ^ f fileSize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10532
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10533
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10534
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10536
    "Created: / 7.1.1998 / 12:18:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10537
    "Modified: / 27.1.1999 / 18:57:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10538
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10540
_File_list0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10541
    |file path f files|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10543
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10544
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10545
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10546
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10547
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10548
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10549
	    f isDirectory ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10550
		files := f directoryContents asArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10551
		files := files collect:[:nm | Java as_String:nm].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10552
		^ files
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10553
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10554
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10555
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10556
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10558
    "Created: / 14.1.1998 / 21:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10559
    "Modified: / 20.10.1998 / 21:00:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10560
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10562
_File_mkdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10563
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10565
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10566
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10567
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10568
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10569
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10570
	f := path asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10571
	(f exists and:[f isDirectory]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10572
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10573
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10575
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10576
	    (self confirm:('JAVA Security check\\Create directory ''' , path , '''.\Grant permission ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10577
	    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10578
		^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10579
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10580
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10581
	OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10582
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10583
	] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10584
	    f makeDirectory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10585
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10586
	f  exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10587
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10588
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10589
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10590
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10591
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10592
    "Created: / 4.2.1998 / 00:19:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10593
    "Modified: / 4.12.1998 / 14:04:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10594
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10596
_File_renameTo0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10597
    "/ void renameTo0 (java.io.File)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10599
    |oldFile newFile oldPath newPath oldF newF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10601
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10602
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10603
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10604
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10605
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10606
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10608
    newFile := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10609
    newPath := newFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10610
    newPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10611
    newPath := Java as_ST_String:newPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10613
    newF := newPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10614
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10615
    (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
 10616
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10617
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10618
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10619
    oldF directory pathName ~= newF directory pathName ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10620
	(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
 10621
	ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10622
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10623
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10624
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10626
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10627
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10628
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10629
	oldF renameTo:newF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10630
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10631
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10632
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10634
    "Modified: / 3.12.1998 / 21:01:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10635
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10637
_File_rmdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10638
    "/ boolean rmdir0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10639
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10640
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10641
    "Modified: / 12.11.1998 / 19:01:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10642
    "Created: / 12.11.1998 / 19:03:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10643
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10645
_Float_floatToIntBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10646
    |f i|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10648
    f := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10650
    UninterpretedBytes isBigEndian ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10651
	i := f basicAt:4. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10652
	i := i bitOr:((f basicAt:3) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10653
	i := i bitOr:((f basicAt:2) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10654
	i := i bitOr:((f basicAt:1) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10655
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10656
	i := f basicAt:1. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10657
	i := i bitOr:((f basicAt:2) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10658
	i := i bitOr:((f basicAt:3) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10659
	i := i bitOr:((f basicAt:4) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10660
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10662
    ^ i.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10664
    "Created: / 4.1.1998 / 01:25:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10665
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10666
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10667
_FontDescriptor_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10668
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10669
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10670
    "Created: / 28.1.1998 / 22:30:52 / 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
_Font_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10674
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10675
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10676
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10677
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10679
_GifImageDecoder_parseImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10680
    |decoder width height bool1 depth subHdrBytes dstBytes i1 i2 colorModel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10681
     stream byte compressedData compressedSize index count data 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10682
     leftOffs topOffs codeLen flags pixelStore clrModel t buffSize 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10683
     countGot countGot2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10684
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10685
    decoder := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10687
    i1 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10688
    i2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10689
    width := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10690
    height := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10691
    bool1 := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10692
    depth := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10693
    subHdrBytes := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10694
    dstBytes := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10695
    colorModel := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10697
    leftOffs := subHdrBytes wordAt:1 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10698
    topOffs := subHdrBytes wordAt:3 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10699
    width := subHdrBytes wordAt:5 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10700
    height := subHdrBytes wordAt:7 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10701
    flags := subHdrBytes at:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10702
    codeLen := subHdrBytes at:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10703
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10704
    stream := decoder instVarNamed:'input'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10705
    pixelStore := decoder instVarNamed:'store'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10706
    pixelStore isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10707
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10708
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10709
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10710
    buffSize := (width * height // 2) max:4096.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10711
    compressedData := ByteArray uninitializedNew:buffSize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10712
    "get compressed data"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10713
    index := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10714
    count := stream perform:#'read()I'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10715
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10716
    [count notNil and:[count > 0]] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10717
	(index + count) > buffSize ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10718
	    t := ByteArray uninitializedNew:(buffSize * 2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10719
	    t replaceFrom:1 to:buffSize with:compressedData startingAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10720
	    compressedData := t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10721
	    buffSize := buffSize * 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10722
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10723
	[count ~~ 0] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10724
	    countGot := stream 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10725
			perform:#'read([BII)I' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10726
			with:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10727
			with:index-1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10728
			with:count.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10730
	    countGot > 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10731
		count := count - countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10732
		index := index + countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10733
	    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10734
		count := -1.
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
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10738
	count >= 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10739
	    count := stream perform:#read.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10740
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10741
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10742
    compressedSize := index - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10743
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10744
    data := pixelStore perform:#'allocateLines(I)Ljava/lang/Object;' with:height.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10745
    (data isMemberOf:ByteArray) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10746
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10747
	^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10748
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10749
"/    'GIFReader: decompressing ...' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10750
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10752
    GIFReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10753
	decompressGIFFrom:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10754
	count:compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10755
	into:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10756
	startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10757
	codeLen:(codeLen + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10758
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10759
    clrModel := pixelStore instVarNamed:'colormodel'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10760
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10761
    pixelStore 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10762
	perform:#'setPixels(IIII[BII)Z'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10763
	withArguments:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10764
	    (Array 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10765
		with:0        "/ x
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10766
		with:0        "/ y
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10767
		with:width    "/ w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10768
		with:height   "/ h
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10769
		with:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10770
		with:0        "/ offs
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10771
		with:width).   "/ scanSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10773
    pixelStore  perform:#'imageComplete()V'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10774
"/        perform:#'imageComplete(I)V' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10775
"/        with:((Java at:'java.awt.image.ImageConsumer') instVarNamed:'STATICIMAGEDONE').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10776
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10777
"/ self internalError:'breakPoint'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10778
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10779
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10780
    "Modified: / 10.4.1998 / 14:31:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10781
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10782
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10783
_ImageRepresentation_disposeImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10784
    |imgRep img|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10785
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10786
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10788
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10789
    (img notNil and:[img ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10790
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10791
	    ImageStretchCache removeKey:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10792
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10793
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10794
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10795
    imgRep instVarNamed:'pData' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10796
"/    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10797
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10798
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10799
    "Modified: / 17.1.1998 / 13:26:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10800
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10801
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10802
_ImageRepresentation_finish:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10803
    |imgRep bool|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10805
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10806
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10807
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10808
"/    'JAVA: ImageRepresentation_finish ignored for now' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10809
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10810
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10812
    "Created: / 8.1.1998 / 00:11:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10813
    "Modified: / 6.2.1998 / 02:12:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10814
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10815
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10816
_ImageRepresentation_imageDraw:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10817
    |imgRep x y img deviceImage jGraphics gc clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10818
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10819
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10820
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10821
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10822
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10823
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10824
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10825
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10826
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10827
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10828
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10829
    x := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10830
    y := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10831
    clr := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10833
    deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10834
    deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10835
	imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10836
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10837
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10838
    deviceImage displayOn:gc x:x y:y.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10839
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10840
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10841
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10842
    "Modified: / 25.11.1998 / 15:36:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10843
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10844
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10845
_ImageRepresentation_imageStretch:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10846
    |imgRep x1 y1 x2 y2 srcX1 srcY1 w h 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10847
     img deviceImage jGraphics gc clr stretchWidth stretchHeight|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10848
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10849
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10850
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10851
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10852
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10853
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10854
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10855
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10856
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10857
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10858
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10859
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10860
    x1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10861
    y1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10862
    x2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10863
    y2:= nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10864
    srcX1 := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10865
    srcY1 := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10866
    w := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10867
    h := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10868
    clr := nativeContext argAt:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10869
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10870
    (srcX1 ~~ 0 or:[srcY1 ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10871
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10872
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10873
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10874
    (w ~~ img width or:[h ~~ img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10875
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10876
	^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10877
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10878
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10879
    "/ TODO: remember magnified images somewhere for a while,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10880
    "/ to avoid repeated action ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10881
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10882
    stretchWidth := (x2-x1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10883
    stretchHeight := (y2-y1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10884
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10885
    (stretchWidth == img width
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10886
    and:[stretchHeight == img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10887
	deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10888
	deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10889
	    imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10890
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10891
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10892
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10893
	    deviceImage := ImageStretchCache at:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10894
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10895
	(deviceImage isNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10896
	or:[deviceImage width ~~ stretchWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10897
	or:[deviceImage height ~~ stretchHeight]]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10898
	    deviceImage := (img magnifiedTo:stretchWidth@stretchHeight) onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10899
	    ImageStretchCache isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10900
		ImageStretchCache := WeakIdentityDictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10901
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10902
	    ImageStretchCache at:img put:deviceImage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10903
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10904
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10905
    deviceImage displayOn:gc x:x1 y:y1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10906
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10907
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10908
    "Modified: / 15.1.1998 / 13:14:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10909
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10911
_ImageRepresentation_offscreenInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10912
    |imgRep jclr w h form screenDevice|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10914
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10915
    jclr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10916
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10917
    w := imgRep instVarNamed:'width'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10918
    h := imgRep instVarNamed:'height'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10919
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10920
    screenDevice := Screen current.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10921
    form := Form width:w height:h depth:(screenDevice depth) on:screenDevice.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10923
    imgRep instVarNamed:'pData' put:form.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10924
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10926
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10927
    "Modified: / 17.1.1998 / 12:36:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10928
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10930
_ImageRepresentation_setBytePixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10931
    |imgRep x y w h clrModel bytes offs i2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10932
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10933
     scanLineWidth nBytes srcIdx dstIdx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10934
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10935
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10936
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10937
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10938
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10939
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10940
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10941
    bytes := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10942
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10943
    scanLineWidth := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10945
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10946
    (clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10947
	rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10948
	cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10949
	rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10950
	    keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10951
		cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10952
	    ].        
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10953
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10954
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10955
    opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10956
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10957
	transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10958
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10960
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10961
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10962
"/        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10963
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10964
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10965
    (offs ~~ 0 or:[scanLineWidth ~~ w]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10966
	nBytes := ByteArray new:w*h.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10967
	srcIdx := offs+1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10968
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10969
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10970
	    nBytes replaceFrom:dstIdx to:(dstIdx+w-1) with:bytes startingAt:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10971
	    srcIdx := srcIdx + scanLineWidth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10972
	    dstIdx := dstIdx + w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10973
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10974
	bytes := nBytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10975
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10976
    img := Image width:w height:h depth:depth fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10977
    cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10978
	img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10979
	img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10980
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10981
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10982
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10983
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10984
		    for:bytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10985
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10986
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10987
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10989
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10990
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10992
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10993
    "Modified: / 21.10.1998 / 00:35:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10994
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10995
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10996
_ImageRepresentation_setIntPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10997
    |imgRep x y w h clrModel ints offs scanLineWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10998
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10999
     bytes srcIdx dstIdx val red green blue
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11000
     redMask greenMask blueMask redShift greenShift blueShift|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11001
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11002
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11003
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11004
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11005
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11006
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11007
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11008
    ints := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11009
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11010
    scanLineWidth := nativeContext argAt:8.  "/ scanLineWidth ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11011
    opaque := false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11012
offs ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11013
 self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11014
].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11015
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11016
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11017
    clrModel class == (Java at:'java.awt.image.DirectColorModel') ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11018
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11019
	(clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11020
	    rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11021
	    cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11022
	    rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11023
		keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11024
		    cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11025
		].        
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11026
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11027
	opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11028
	opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11029
	    transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11030
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11031
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11032
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11033
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11034
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11035
"/        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11036
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11037
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11038
    depth == 32 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11039
	"/ temporary kludge - ony use 24 bits/pixel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11040
	bytes := ByteArray new:w*h*3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11041
	srcIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11042
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11043
	redMask := clrModel instVarNamed:'red_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11044
	greenMask := clrModel instVarNamed:'green_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11045
	blueMask := clrModel instVarNamed:'blue_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11046
	redShift := (clrModel instVarNamed:'red_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11047
	greenShift := (clrModel instVarNamed:'green_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11048
	blueShift := (clrModel instVarNamed:'blue_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11049
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11050
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11051
	    1 to:w do:[:x |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11052
		val := ints at:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11053
		red := (val bitAnd:redMask) bitShift:redShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11054
		green := (val bitAnd:greenMask) bitShift:greenShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11055
		blue := (val bitAnd:blueMask) bitShift:blueShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11056
		bytes at:dstIdx put:red.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11057
		bytes at:dstIdx+1 put:green.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11058
		bytes at:dstIdx+2 put:blue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11059
		dstIdx := dstIdx + 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11060
		srcIdx := srcIdx + 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11061
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11062
	    srcIdx := srcIdx + (scanLineWidth - w).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11063
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11064
	img := Depth24Image width:w height:h depth:24 fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11065
	img photometric:#rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11066
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11067
	scanLineWidth ~~ w ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11068
	    self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11069
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11070
	img := Image width:w height:h depth:depth fromArray:ints.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11071
	cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11072
	    img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11073
	    img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11074
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11075
	    img photometric:#rgb
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11076
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11077
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11078
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11079
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11080
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11081
		    for:ints
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11082
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11083
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11084
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11086
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11087
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11089
    "Created: / 1.2.1998 / 17:38:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11090
    "Modified: / 21.10.1998 / 00:35:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11091
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11093
_InetAddressImpl_getHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11094
    "/ java.lang.String getHostByAddr (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11095
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11096
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11097
    "Created: / 12.11.1998 / 19:08:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11098
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11099
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11100
_InetAddressImpl_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11101
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11102
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11103
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11104
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11105
    "Created: / 5.1.1998 / 02:05:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11106
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11108
_InetAddressImpl_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11109
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11110
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11111
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11112
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11113
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11115
    ^ (Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11117
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11118
    "Created: / 5.1.1998 / 02:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11119
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11120
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11121
_InetAddressImpl_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11122
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11124
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11126
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11127
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11129
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11130
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11131
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11132
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11133
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11134
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11135
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11136
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11137
    "Created: / 7.1.1998 / 18:51:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11138
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11139
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11140
_InetAddressImpl_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11141
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11143
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11144
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11145
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11146
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11147
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11148
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11149
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11150
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11151
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11152
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11153
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11154
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11155
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11156
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11157
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11159
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11160
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11161
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11163
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11165
    "Created: / 5.1.1998 / 02:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11166
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11167
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11169
_InetAddress_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11170
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11171
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11173
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11174
    "Created: / 17.11.1998 / 23:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11175
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11176
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11177
_InetAddress_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11178
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11179
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11180
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11181
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11182
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11184
    ^ Java as_String:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11186
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11187
    "Created: / 17.11.1998 / 23:54:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11188
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11190
_InetAddress_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11191
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11193
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11194
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11195
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11196
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11198
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11199
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11200
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11201
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11202
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11203
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11204
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11205
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11206
    "Created: / 17.11.1998 / 23:56:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11207
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11208
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11209
_InetAddress_lookupHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11210
    "java.lang.Object[] lookupHostByAddr (int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11211
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11212
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11213
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11214
    "Created: / 27.1.2000 / 02:59:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11215
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11217
_InetAddress_lookupHostByName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11218
    "java.lang.Object[] lookupHostByName (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11219
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11220
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11222
    "Modified: / 27.1.2000 / 02:58:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11223
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11225
_InetAddress_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11226
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11227
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11228
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11229
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11230
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11231
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11233
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11234
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11235
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11236
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11237
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11238
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11239
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11240
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11241
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11242
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11244
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11245
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11246
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11247
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11248
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11250
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11251
    "Created: / 17.11.1998 / 23:54:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11252
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11254
_Inflater_end0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11255
    "/ void end0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11256
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11257
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11258
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11259
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11260
    "Created: / 27.1.2000 / 03:11:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11261
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11262
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11263
_Inflater_getAdler0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11264
    "/ int getAdler0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11266
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11268
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11269
    "Created: / 27.1.2000 / 03:12:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11270
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11271
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11272
_Inflater_getTotalIn0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11273
    "/ int getTotalIn0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11274
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11275
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11276
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11277
    "Created: / 27.1.2000 / 03:10:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11278
    "Modified: / 27.1.2000 / 03:11:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11279
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11281
_Inflater_getTotalOut0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11282
    "/ int getTotalOut0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11283
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11284
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11286
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11287
    "Created: / 27.1.2000 / 03:12:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11288
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11290
_Inflater_inflate0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11291
    "/ int inflate0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11292
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11293
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11295
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11296
    "Created: / 27.1.2000 / 03:11:39 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11297
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11299
_Inflater_reset0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11300
    "/ void reset0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11301
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11302
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11304
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11305
    "Created: / 27.1.2000 / 03:11:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11306
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11307
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11308
_Inflater_setDictionary0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11309
    "/ void setDictionary0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11310
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11311
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11313
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11314
    "Created: / 27.1.2000 / 03:10:33 / 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
_InputThread_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11318
    self _WToolkit_eventLoop:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11319
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11320
    "Created: / 28.1.1998 / 22:34:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11321
    "Modified: / 28.1.1998 / 22:35:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11322
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11324
_Introspector_getMethodDescriptor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11325
    "java.lang.String getMethodDescriptor (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11327
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11329
    "Created: / 27.1.2000 / 02:47:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11330
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11331
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11332
_Introspector_getMethodParameterCount:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11333
    "int getMethodParameterCount (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11334
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
    "Created: / 27.1.2000 / 02:49:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11338
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11339
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11340
_Introspector_getPublicDeclaredMethods0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11341
    "java.lang.reflect.Method[] getPublicDeclaredMethods0 (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11342
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
    "Created: / 27.1.2000 / 02:48:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11346
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11348
_JPEGImageDecoder_readImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11349
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11350
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11351
    "Created: / 12.11.1998 / 18:53:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11352
    "Modified: / 12.11.1998 / 18:53:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11353
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11355
_MButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11356
    ^ self _WButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11357
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11359
_MCanvasPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11360
    |jCanvasPeer jFrame frame subView|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11361
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11362
    jCanvasPeer := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11363
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11364
    jFrame := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11365
    jFrame isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11366
	self halt:'no frame in canvasPeer create'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11367
	self internalError:'no frame in canvasPeer create'.     
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11368
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11369
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11370
    frame := jFrame instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11371
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11372
    subView := JavaView in:frame.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11373
    subView delegate:self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11374
    subView javaPeer:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11375
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11376
    self createdWindowsView:subView for:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11377
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11378
    WindowCreationTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11379
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11380
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11381
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11382
    "Modified: / 16.1.1998 / 13:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11383
    "Created: / 18.11.1998 / 00:14:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11384
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11385
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11386
_MComponentPeer_cacheInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11387
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11388
    "Created: / 28.1.1998 / 22:22:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11389
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11390
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11391
_MComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11392
    ^ self _WComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11394
    "Created: / 18.11.1998 / 00:21:17 / 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
_MComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11398
    ^ self _WComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11399
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11401
_MComponentPeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11402
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11404
    "Created: / 18.11.1998 / 00:15:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11405
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11407
_MComponentPeer_pInitialize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11408
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11409
    "Created: / 28.1.1998 / 22:27:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11410
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11412
_MComponentPeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11413
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11414
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11415
    "Created: / 18.11.1998 / 00:18:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11416
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11418
_MComponentPeer_pSetBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11419
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11420
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11421
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11422
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11423
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11425
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11427
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11428
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11429
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11430
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11431
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11432
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11433
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11435
_MComponentPeer_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11436
    |view jFont stFont name style size|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11438
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11439
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11441
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11442
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11443
        name := jFont instVarNamed:'name'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11444
        style := jFont instVarNamed:'style'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11445
        size := jFont instVarNamed:'size'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11447
        stFont := self replacementFontFor:(Java as_ST_String:name) style:style size:size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11448
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11449
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11450
    view font:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11451
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11452
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11453
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11454
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11455
_MComponentPeer_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11456
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11458
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11459
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11460
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11462
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11463
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11464
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11466
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11467
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11468
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11469
    view foregroundColor:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11470
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11471
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11472
_MComponentPeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11473
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11475
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11476
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11477
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11478
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11479
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11480
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11481
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11482
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11483
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11484
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11485
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11486
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11487
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11488
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11489
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11490
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11491
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11492
    "Created: / 18.11.1998 / 00:21:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11493
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11494
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11495
_MComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11496
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11497
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11498
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11499
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11500
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11501
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11502
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11503
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11505
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11506
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11507
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11508
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11509
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11510
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11511
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11512
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11514
    "Created: / 17.11.1998 / 23:49:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11515
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11517
_MComponentPeer_setCursor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11519
    "Created: / 28.1.1998 / 22:27:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11520
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11522
_MComponentPeer_setFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11523
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11524
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11525
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11526
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11528
    "Modified: / 25.1.1998 / 01:22:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11529
    "Created: / 17.11.1998 / 23:43:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11530
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11531
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11532
_MComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11533
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11535
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11536
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11537
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11538
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11539
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11540
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11541
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11542
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11543
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11544
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11546
    "Created: / 17.11.1998 / 23:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11547
    "Modified: / 17.11.1998 / 23:57:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11548
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11549
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11550
_MFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11551
    ^ self _WFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11552
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11553
    "Created: / 28.1.1998 / 22:25:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11554
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11556
_MFramePeer_getWindowBackgroundColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11557
    ^ View defaultViewBackgroundColor rgbValue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11559
    "Created: / 17.11.1998 / 23:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11560
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11562
_MFramePeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11563
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11565
    "Created: / 28.1.1998 / 22:27:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11566
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11568
_MFramePeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11569
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11570
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11571
    "Created: / 28.1.1998 / 22:28:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11572
    "Modified: / 28.1.1998 / 22:29:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11573
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11574
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11575
_MFramePeer_pSetTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11576
    self _WWindowPeer__setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11577
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11578
    "Created: / 28.1.1998 / 22:30:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11579
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11580
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11581
_MFramePeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11582
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11584
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11585
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11586
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11587
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11588
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11589
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11590
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11591
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11592
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11593
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11594
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11596
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11598
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11599
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11600
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11601
    "Created: / 18.11.1998 / 00:19:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11602
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11603
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11604
_MFramePeer_setInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11605
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11606
    "Created: / 17.11.1998 / 23:55:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11607
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11609
_MFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11610
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11612
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11613
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11614
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11615
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11616
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11617
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11618
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11619
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11620
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11621
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11622
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11623
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11624
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11625
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11626
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11627
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11629
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11630
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11631
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11632
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11633
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11634
    "Created: / 17.11.1998 / 23:51:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11635
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11636
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11637
_MToolkit_callbackLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11638
    | toolKit |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11639
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11640
    ^ self.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11641
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11642
        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
 11643
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11644
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11645
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11646
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11647
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11648
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11649
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11650
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11651
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11652
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11653
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11654
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11655
    "Created: / 17-11-1998 / 23:58:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11656
    "Modified: / 08-01-1999 / 17:08:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11657
    "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
 11658
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11659
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11660
_MToolkit_eventLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11661
    | toolKit |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11662
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11663
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11664
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11665
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11666
    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
 11667
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11668
    self halt.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11669
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11670
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11671
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11672
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11673
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11674
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11675
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11676
    "Created: / 17-11-1998 / 23:04:29 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11677
    "Modified: / 08-01-1999 / 17:08:21 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11678
    "Modified: / 22-11-2011 / 13:24:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11679
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11681
_MToolkit_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11683
    "Created: / 28.1.1998 / 22:21:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11684
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11685
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11686
_MToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11687
    ^ self _WToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11688
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11689
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11690
_MToolkit_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11691
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11692
    "Created: / 28.1.1998 / 22:22:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11693
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11694
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11695
_Math_IEEEremainder:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11696
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11698
    "Created: / 12.11.1998 / 18:52:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11699
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11701
_Math_acos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11702
    "arc cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11704
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11706
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11707
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11708
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11709
"/            'JAVAVM [info]: missing double flag in Math>>acos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11710
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11711
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11712
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11713
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11714
    ^ dVal arcCos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11716
    "Created: / 7.5.1998 / 00:34:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11717
    "Modified: / 11.11.1998 / 15:08:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11718
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11719
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11720
_Math_asin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11721
    "arc sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11723
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11725
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11726
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11727
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11728
"/            'JAVAVM [info]: missing double flag in Math>>asin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11729
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11730
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11731
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11732
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11733
    ^ dVal arcSin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11734
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11735
    "Created: / 7.5.1998 / 00:34:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11736
    "Modified: / 11.11.1998 / 15:08:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11737
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11739
_Math_atan2:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11740
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11742
    "Created: / 12.11.1998 / 18:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11745
_Math_atan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11746
    "arc tangens"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11748
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11750
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11751
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11752
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11753
"/            'JAVAVM [info]: missing double flag in Math>>atan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11754
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11755
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11756
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11757
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11758
    ^ dVal arcTan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11760
    "Created: / 6.2.1998 / 01:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11761
    "Modified: / 11.11.1998 / 15:08:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11762
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11764
_Math_ceil:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11765
    "ceiling"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11766
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11767
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11769
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11770
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11771
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11772
"/            'JAVAVM [info]: missing double flag in Math>>ceil' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11773
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11774
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11775
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11776
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11777
    ^ dVal ceilingAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11779
    "Created: / 7.1.1998 / 15:43:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11780
    "Modified: / 11.11.1998 / 15:08:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11781
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11783
_Math_cos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11784
    "cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11786
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11787
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11788
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11789
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11790
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11791
"/            'JAVAVM [info]: missing double flag in Math>>cos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11792
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11793
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11794
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11795
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11796
    ^ dVal cos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11798
    "Created: / 7.1.1998 / 15:41:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11799
    "Modified: / 11.11.1998 / 15:07:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11800
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11802
_Math_exp:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11803
    "exponential"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11805
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11807
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11808
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11809
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11810
"/            'JAVAVM [info]: missing double flag in Math>>exp' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11811
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11812
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11813
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11814
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11815
    ^ dVal exp
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11816
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11817
    "Created: / 7.5.1998 / 00:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11818
    "Modified: / 11.11.1998 / 15:07:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11819
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11821
_Math_floor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11822
    "floor"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11823
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11824
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11826
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11827
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11828
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11829
"/            'JAVAVM [info]: missing double flag in Math>>floor' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11830
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11831
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11832
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11833
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11834
    ^ dVal floorAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11836
    "Created: / 7.1.1998 / 19:09:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11837
    "Modified: / 11.11.1998 / 15:07:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11838
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11840
_Math_log:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11841
    "natural logarithm"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11843
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11845
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11846
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11847
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11848
"/            'JAVAVM [info]: missing double flag in Math>>log' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11849
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11850
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11851
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11852
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11853
    ^ dVal ln
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11854
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11855
    "Created: / 7.1.1998 / 15:42:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11856
    "Modified: / 30.12.1998 / 17:41:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11857
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11858
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11859
_Math_pow:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11860
    "power"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11862
    |dVal1 dVal2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11864
    dVal1 := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11865
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11866
"/        dVal1 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11867
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11868
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11869
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11870
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11871
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11872
    dVal2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11873
"/    (nativeContext argAt:4) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11874
"/        dVal2 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11875
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11876
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11877
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11878
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11879
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11880
    ^ dVal1 raisedTo:dVal2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11882
    "Created: / 7.1.1998 / 15:44:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11883
    "Modified: / 11.11.1998 / 15:07:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11884
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11886
_Math_rint:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11887
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11889
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11890
    ^ dVal rounded asFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11891
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11893
_Math_sin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11894
    "sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11896
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11898
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11899
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11900
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11901
"/            'JAVAVM [info]: missing double flag in Math>>sin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11902
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11903
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11904
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11905
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11906
    ^ dVal sin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11908
    "Created: / 7.1.1998 / 15:41:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11909
    "Modified: / 11.11.1998 / 15:07:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11910
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11912
_Math_sqrt:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11913
    "square root"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11915
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11916
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11917
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11918
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11919
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11920
"/            'JAVAVM [info]: missing double flag in Math>>sqrt' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11921
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11922
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11923
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11924
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11926
    "/ how about domain errors ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11927
    dVal < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11928
	^ 0.0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11929
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11930
    ^ dVal sqrt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11932
    "Created: / 7.1.1998 / 15:42:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11933
    "Modified: / 29.12.1998 / 13:22:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11934
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11936
_Math_tan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11937
    "tangent"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11939
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11941
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11942
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11943
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11944
"/            'JAVAVM [info]: missing double flag in Math>>tan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11945
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11946
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11947
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11948
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11949
    ^ dVal tan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11951
    "Created: / 7.5.1998 / 00:34:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11952
    "Modified: / 11.11.1998 / 15:07:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11953
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11954
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11955
_MemoryAdvice_register0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11956
    "private native void register0()"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11957
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11958
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11959
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11960
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11961
_Method_getModifiers:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11962
    |jMethod mthd retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11963
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11964
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11966
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11967
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11968
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11969
	^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11970
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11971
    ^ mthd accessFlags
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11973
    "Modified: / 9.4.1998 / 17:50:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11974
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11975
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11976
_MozillaAppletContext_pMochaOnLoad:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11977
    |id|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11978
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11979
    id := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11980
"/ 'JAVA: MozillaAppletContext_pMochaOnLoad: ' print. id printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11981
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11983
    "Created: / 6.1.1998 / 20:37:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11984
    "Modified: / 6.2.1998 / 02:13:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11985
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11987
_MozillaAppletContext_pShowDocument:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11988
    |jAppletContext s1 s2 s3 js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11990
    jAppletContext := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11991
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11992
    s1 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11993
    js := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11994
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11995
    js := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11996
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11998
    "/ somehow pass it to the html browser ....
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11999
Transcript show:'pShowDocument: '; show:s1; show:' / '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12000
	   show:s2; show:' / '; showCR:s3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12001
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12002
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12004
    "Created: / 29.3.1998 / 15:53:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12005
    "Modified: / 29.12.1998 / 13:32:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12006
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12007
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12008
_MozillaAppletContext_pShowStatus:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12009
    |s js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12011
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12012
    js isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12013
	s := ''
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12014
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12015
	s := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12016
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12017
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12018
    self activityNotification:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12019
"/ Transcript showCR:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12020
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12021
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12022
    "Created: / 6.1.1998 / 18:31:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12023
    "Modified: / 22.10.1998 / 01:17:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12024
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12026
_MozillaAppletContext_setConsoleState0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12027
    "/ void setConsoleState0 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12028
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12029
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12030
    "Created: / 12.11.1998 / 19:23:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12031
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12032
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12033
_ObjectInputStream_allocateNewArray:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12034
    "/ java.lang.Object allocateNewArray (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12035
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12036
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12037
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12038
    "Created: / 12.11.1998 / 19:02:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12039
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12041
_ObjectInputStream_allocateNewObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12042
    "/ java.lang.Object allocateNewObject (java.lang.Class java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12043
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12045
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12046
    "Created: / 12.11.1998 / 19:02:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12047
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12048
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12049
_ObjectInputStream_inputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12050
    "/ void inputClassFields (java.lang.Object java.lang.Class int[])
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
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12054
    "Created: / 12.11.1998 / 19:02:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12055
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12056
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12057
_ObjectInputStream_invokeDefaultReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12058
    "/ void invokeDefaultReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12059
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12060
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12061
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12062
    "Created: / 27.1.2000 / 03:00:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12063
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12064
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12065
_ObjectInputStream_invokeObjectReader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12066
    "/ boolean invokeObjectReader (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12067
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12069
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12070
    "Created: / 12.11.1998 / 19:03:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12071
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12072
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12073
_ObjectInputStream_invokeReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12074
    "/ void invokeReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12075
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12076
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12078
    "Created: / 27.1.2000 / 03:01:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12079
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12081
_ObjectInputStream_loadClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12082
    "/ java.lang.Class loadClass0 (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12083
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12084
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12085
    "Created: / 12.11.1998 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12086
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12087
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12089
_ObjectOutputStream_invokeDefaultWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12090
    "/ void invokeDefaultWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12091
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12092
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12093
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12094
    "Created: / 27.1.2000 / 03:01:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12095
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12096
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12097
_ObjectOutputStream_invokeObjectWriter:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12098
    "/ boolean invokeObjectWriter (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12099
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12101
    "Created: / 12.11.1998 / 19:00:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12102
    "Modified: / 12.11.1998 / 19:01:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12103
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12104
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12105
_ObjectOutputStream_invokeWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12106
    "/ void invokeWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12108
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12110
    "Created: / 27.1.2000 / 03:01:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12111
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12112
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12113
_ObjectOutputStream_outputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12114
    "/ void outputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12115
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12117
    "Created: / 12.11.1998 / 19:00:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12118
    "Modified: / 12.11.1998 / 19:01:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12119
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12120
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12121
_ObjectStreamClass_doMismatchedRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12122
    "/ void doMismatchedRead (java.io.ObjectInputStream java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12124
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12126
    "Created: / 27.1.2000 / 02:50:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12127
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12129
_ObjectStreamClass_findObjectMethod0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12130
    "/ boolean findObjectMethod0 (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12132
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12133
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12134
    "Created: / 27.1.2000 / 02:51:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12135
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12136
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12137
_ObjectStreamClass_getClassAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12138
    "/ int getClassAccess (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12139
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12141
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12142
    "Created: / 12.11.1998 / 19:04:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12143
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12144
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12145
_ObjectStreamClass_getClassDefinedUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12146
    "/ long getClassDefinedUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12147
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12148
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12149
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12150
    "Created: / 27.1.2000 / 02:51:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12151
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12153
_ObjectStreamClass_getFieldAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12154
    "/ int getFieldAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12155
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12157
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12158
    "Created: / 12.11.1998 / 19:05:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12159
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12161
_ObjectStreamClass_getFieldSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12162
    "/ java.lang.String[] getFieldSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12163
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12165
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12166
    "Created: / 12.11.1998 / 19:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12167
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12169
_ObjectStreamClass_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12170
    "/ java.io.ObjectStreamField[] getFields0 (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12171
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12173
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12174
    "Created: / 12.11.1998 / 19:05:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12175
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12176
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12177
_ObjectStreamClass_getMethodAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12178
    "/ int getMethodAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12179
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12180
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12181
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12182
    "Created: / 12.11.1998 / 19:04:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12183
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12184
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12185
_ObjectStreamClass_getMethodSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12186
    "/ java.lang.String[] getMethodSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12187
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12188
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12189
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12190
    "Created: / 12.11.1998 / 19:04:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12191
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12193
_ObjectStreamClass_getSerialVersionUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12194
    "/ long getSerialVersionUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12195
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12196
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12197
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12198
    "Created: / 12.11.1998 / 19:05:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12199
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12200
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12201
_ObjectStreamClass_hasWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12202
    "/ boolean hasWriteObject (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12203
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12204
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12205
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12206
    "Created: / 12.11.1998 / 19:05:53 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12207
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12208
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12209
_OffScreenImageSource_sendPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12210
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12211
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12213
    "Modified: / 16.1.1998 / 18:22:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12214
    "Created: / 17.1.1998 / 12:36:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12215
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12217
_PackedColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12218
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12219
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12220
    "Created: / 28.1.1998 / 22:19:35 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12221
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12223
_PlainDatagramSocketImpl_bind:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12224
    |jsock jaddr port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12226
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12227
    port := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12228
    jaddr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12230
    hostName := jaddr instVarNamed:'hostName'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12231
    hostName isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12232
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12233
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12234
	hostName := Java as_ST_String:hostName
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12235
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12237
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12238
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12239
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12240
	    ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12241
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12243
	ok := sock bindTo:port address:nil "hostName".
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12244
	ok ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12245
	    err := OperatingSystem lastErrorString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12246
	    Transcript showCR:'sock err: ' , err printString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12247
	    self throwIOExceptionWithMessage:'bind failed'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12248
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12249
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12251
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12252
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12253
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12255
_PlainDatagramSocketImpl_join:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12256
    "/ native void join (InetAddress arg1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12258
    |jsock addr sock ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12260
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12261
    addr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12263
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12264
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12265
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12266
	    ('JAVA: socket join ' , addr printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12267
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12268
	self throwIOExceptionWithMessage:'unimplemented: join'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12269
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12270
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12271
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12273
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12274
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12275
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12277
_PlainDatagramSocketImpl_receive:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12278
    |jsock jdatagramPacket sock ok|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12280
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12281
    jdatagramPacket := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12283
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12284
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12285
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12286
	    ('JAVA: socket receive') infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12287
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12288
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12289
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12290
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12292
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12293
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12294
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12296
_PlainDatagramSocketImpl_socketGetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12297
    |jsock opt port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12299
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12300
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12302
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12303
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12304
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12305
	    ('JAVA: socket getOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12306
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12307
	self throwIOExceptionWithMessage:'unimplemented: getOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12308
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12309
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12310
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12311
    ^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12312
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12313
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12314
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12315
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12316
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12317
_PlainSocketImpl_socketAvailable:nativeContext
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12318
    |jSock sock n|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12319
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12320
    jSock := nativeContext receiver.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12321
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12322
    sock := self validateFile:jSock.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12323
    sock isNil ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12324
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12325
	^ self.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12326
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12327
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12328
    n := sock numAvailable.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12329
    ^ n
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12330
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12331
    "Created: / 4.2.1998 / 16:58:49 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12332
    "Modified: / 30.12.1998 / 20:10:08 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12333
!
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12334
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12335
_PlainSocketImpl_socketClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12336
    |jsock sock|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12338
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12340
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12341
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12342
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12343
	    'JAVA: close socket' infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12344
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12345
	sock close.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12346
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12348
    "Modified: / 21.8.1997 / 17:09:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12349
    "Created: / 25.1.1998 / 20:04:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12350
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12351
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12352
_PlatformFont_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12353
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12355
    "Created: / 28.1.1998 / 22:30:41 / 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
_PrintStream_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12359
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12361
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12363
    "Created: / 27.1.2000 / 03:00:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12364
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12366
_RandomAccessFile_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12367
    ^ self anyStream_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12369
    "Created: / 4.2.1998 / 13:26:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12370
    "Modified: / 4.2.1998 / 15:21:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12371
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12372
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12373
_Runtime_buildLibName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12374
    |jPath jFileName path fileName libName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12375
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12376
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12377
    jFileName := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12379
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12380
    fileName := Java as_ST_String:jFileName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12381
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12382
    path = '__builtIn__' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12383
	libName := path , '/' , fileName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12384
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12385
	libName := path , '/lib' , fileName , '.so'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12386
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12387
    ^ Java as_String:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12388
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12389
    "Modified: / 8.8.1997 / 12:05:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12390
    "Created: / 4.1.1998 / 19:07:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12391
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12392
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12393
_Runtime_execInternal: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12394
    "Run a unix-command; return a process object."
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12395
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12396
    | cmdAndArgArray  envArray  cmd  jProcessClass  jProcess |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12397
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12398
    cmdAndArgArray := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12399
    envArray := nativeContext argAt: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12400
    cmd := cmdAndArgArray at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12401
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12402
        jProcessClass := self classForName: 'java.lang.UNIXProcess'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12403
    ] ifFalse: [ jProcessClass := Java classForName: 'java.lang.Win32Process'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12404
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12405
"/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12406
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12407
    jProcessClass notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12408
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12409
        jProcess := jProcessClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12410
        jProcess 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12411
            perform: #'<init>([Ljava/lang/String;[Ljava/lang/String;)V'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12412
            with: cmdAndArgArray
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12413
            with: envArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12414
        ^ jProcess
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12415
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12416
    self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12417
    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12418
        throwIOExceptionWithMessage: 'Process execution disabled/unimplemented'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12419
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12420
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12421
    "Created: / 15.1.1998 / 01:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12422
    "Modified: / 11.12.1998 / 13:09:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12423
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12425
_Runtime_initializeLinkerInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12426
    "init sharedLib linker, return searchPath as javaString"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12428
    |path|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12429
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12430
    "/ mhmh - what is done here ?
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12431
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12432
    path := ''.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12433
    LibPath do:[:comp | path size == 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12434
			    path := path , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12435
			] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12436
			    path := path , ':' , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12437
			]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12438
	       ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12439
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12440
    ^ Java as_String:path
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12441
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12442
    "Modified: / 7.8.1997 / 21:17:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12443
    "Created: / 4.1.1998 / 17:53:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12444
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12445
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12446
_Runtime_isInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12447
    "/ boolean isInputStreamLocalised (java.io.DataInputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12448
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12449
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12451
    "Created: / 27.1.2000 / 03:03:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12452
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12453
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12454
_Runtime_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12455
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12456
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12457
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12458
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12459
    "Created: / 27.1.2000 / 03:02:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12460
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12462
_Runtime_loadFileInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12463
    "load a sharedLib, return boolean 0 (false) if fail; 1 (true) if ok"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12465
    |ret|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12466
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12467
    ret := self _Runtime_loadFileInternalI:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12468
    ret < 0 ifTrue:[ ret := 0 ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12469
    ^ ret
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12470
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12471
    "Created: / 4.1.1998 / 19:10:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12472
    "Modified: / 4.1.1998 / 19:11:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12473
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12475
_Runtime_loadFileInternalI:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12476
    "1.1b3 change; load a sharedLib like 'loadFileInternal',
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12477
     but return integer:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12478
	-1   outOfMemory error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12479
	0    failed to load
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12480
	1    loaded or already loaded (i.e. ok)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12481
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12482
    |jLibName libName libHandle|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12483
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12484
    jLibName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12485
    libName := Java as_ST_String:jLibName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12486
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12487
    (SimulatedLibs includes:libName) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12488
"/        ('JAVA: builtIn libLoad simulated: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12489
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12490
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12491
    (LoadedLibs notNil and:[LoadedLibs includesKey:libName]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12492
"/        ('JAVA: already loaded: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12493
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12494
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12495
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12496
    libName asFilename exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12497
	('JAVA: no file to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12498
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12499
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12501
    (self confirm:'permission to load native library: ' , libName , ' ?') ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12502
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12503
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12505
    libHandle := ObjectFileLoader loadLibrary:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12506
    libHandle isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12507
	('JAVA: failed to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12508
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12509
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12511
    LoadedLibs isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12512
	LoadedLibs := Dictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12513
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12514
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12515
    LoadedLibs at:libName put:libHandle.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12516
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12517
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12518
    "Created: / 4.1.1998 / 19:10:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12519
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12520
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12522
_Runtime_runFinalization:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12523
    "/ void runFinalization ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12524
"/    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12526
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12527
    "Created: / 12.11.1998 / 18:59:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12528
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12529
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12530
_Runtime_runFinalizersOnExit0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12531
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12533
    |onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12535
    onOff := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12536
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12538
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12539
    "Created: / 15.10.1998 / 23:34:55 / 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
_Runtime_setInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12543
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
    "Modified: / 27.1.2000 / 03:02:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12547
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12549
_Runtime_setOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12550
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12551
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12552
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12553
    "Modified: / 27.1.2000 / 03:02:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12554
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12556
_Runtime_totalMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12557
    "free memory - Returns the total number of bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12559
    ^ ObjectMemory oldSpaceSize + ObjectMemory newSpaceSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12560
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12561
    "Created: / 12.1.1998 / 12:59:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12562
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12563
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12564
_Runtime_traceInstructions:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12565
    "/ void traceInstructions (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12566
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12568
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12569
    "Created: / 12.11.1998 / 18:59:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12570
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12571
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12572
_Runtime_traceMethodCalls:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12573
    "/ void traceMethodCalls (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12574
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12575
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12576
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12577
    "Created: / 12.11.1998 / 18:59:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12578
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12580
_ScrollPane_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12581
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12582
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12583
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12584
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12585
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12586
_SecurityManager_classDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12587
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12588
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12589
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12590
    "Created: / 12.11.1998 / 18:56:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12591
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12592
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12593
_SecurityManager_classLoaderDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12594
    |con depth|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12596
    con := thisContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12597
    depth := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12598
    [con notNil] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12599
	con receiver == JavaClassReader classLoaderQuerySignal ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12600
	    con selector == #handle:do: ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12601
		depth := depth + 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12602
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12603
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12604
	con := con sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12605
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12606
'JAVA: classLoaderDepth -> ' infoPrint. depth infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12607
    ^ depth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12609
    "Created: / 13.1.1998 / 09:21:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12610
    "Modified: / 13.1.1998 / 09:33:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12611
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12612
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12613
_SecurityManager_currentClassLoader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12614
    |loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12616
    loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12617
"/ 'JAVA: currentClassLoader -> ' infoPrint. loader displayString infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12618
    ^ loader.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12619
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12620
    "Created: / 13.1.1998 / 09:23:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12621
    "Modified: / 11.12.1998 / 12:39:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12622
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12623
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12624
_SecurityManager_currentLoadedClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12625
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12626
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12627
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12628
    "Created: / 12.11.1998 / 18:56:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12629
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12630
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12631
_SocketInputStream_socketRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12632
    ^ self anyStream_readBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12633
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12634
    "Created: / 25.1.1998 / 20:56:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12635
    "Modified: / 4.2.1998 / 15:52:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12636
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12637
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12638
_SocketOutputStream_socketWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12639
    ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12640
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12641
    "Created: / 25.1.1998 / 21:06:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12642
    "Modified: / 4.2.1998 / 15:52:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12643
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12644
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12645
_String_compareTo:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12646
    "int compareTo (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12648
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12649
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12650
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12651
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12652
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12653
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12654
    "Created: / 27.1.2000 / 02:28:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12655
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12656
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12657
_String_equals:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12658
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12659
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12660
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12661
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12662
    ^ (jString1 instVarAt:1) = (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12663
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12664
    "Created: / 18.11.1998 / 00:52:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12665
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12666
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12667
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12668
_String_equalsIgnoreCase:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12669
    "boolean equalsIgnoreCase (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12670
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12671
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12673
self halt:'untested'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12675
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12676
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12677
    ^ (jString1 instVarAt:1) sameAs: (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12679
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12680
    "Created: / 27.1.2000 / 02:27:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12681
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12683
_String_indexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12684
    "int indexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12685
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12686
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12687
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12688
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12689
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12690
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12691
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12693
    "Created: / 27.1.2000 / 02:30:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12694
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12696
_String_lastIndexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12697
    "int lastIndexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12698
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12699
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12700
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12701
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12702
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12703
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12704
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12705
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12706
    "Created: / 27.1.2000 / 02:33:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12707
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12708
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12709
_String_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12710
    |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12711
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12712
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12713
    ^ (jString instVarAt:3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12715
    "Created: / 18.11.1998 / 00:53:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12716
    "Modified: / 18.11.1998 / 00:54:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12717
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12718
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12719
_String_regionMatches2:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12720
    "boolean regionMatches (boolean int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12721
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12722
    |jString1 bool jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12724
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12725
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12726
    jString2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12727
    idx1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12728
    idx2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12729
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12730
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12731
    "Created: / 27.1.2000 / 02:33:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12732
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12733
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12734
_String_regionMatches:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12735
    "boolean regionMatches (int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12737
    |jString1 jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12738
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12739
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12740
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12741
    idx1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12742
    idx2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12743
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12744
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12745
    "Created: / 27.1.2000 / 02:32:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12746
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12747
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12748
_String_startsWith:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12749
    "boolean startsWith (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12750
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12751
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12753
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12754
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12755
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12756
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12757
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12758
    "Created: / 27.1.2000 / 02:31:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12759
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12760
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12761
_SystemColor_GetSysColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12762
    "/ int GetSysColor (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12763
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12764
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12765
    "Created: / 27.1.2000 / 02:44:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12766
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12768
_SystemResourceManager_getEntryFromKey:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12769
    "get a resource by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12770
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12771
    |key s|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12773
    key := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12775
    s := Java effectiveClassPath at:(key+1) ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12776
    s isNil ifTrue:[^ nil].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12777
    ^ Java as_String:s
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12778
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12779
    "Modified: / 22-11-2010 / 13:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12780
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12782
_SystemResourceManager_validateSystemResource:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12783
    "check a resource"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12784
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12785
    |bool str1 str2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12787
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12788
    str1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12789
    str2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12790
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12791
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12792
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12793
_System_getCallerClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12794
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12795
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12796
    |senderContext cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12797
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12798
    senderContext := nativeContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12799
    [senderContext receiver == (Java at:'java.lang.System')] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12800
	senderContext := senderContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12801
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12803
    senderContext method isStatic ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12804
	cls := senderContext receiver
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12805
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12806
	cls := senderContext receiver class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12807
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12808
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12809
	^ self javaClassObjectForClass:cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12810
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12811
    (cls isMemberOf:(Java at:'java.lang.Class')) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12812
	^ Java at:'java.lang.Class'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12813
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12814
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12815
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12817
    "Modified: / 27.1.1998 / 18:33:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12818
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12819
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12820
_System_validateSecurityManager:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12821
    "void validateSecurityManager (java.lang.SecurityManager)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12822
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12823
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12824
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12825
    "Created: / 27.1.2000 / 02:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12826
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12828
_ThreadGroup_initMainThreadGroup0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12829
    "void initMainThreadGroup0 (java.lang.ThreadGroup)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12830
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12831
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12833
    "Created: / 27.1.2000 / 02:45:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12834
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12835
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12836
_Thread_countStackFrames:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12837
    "/ int countStackFrames ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12838
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12839
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12840
    "Created: / 12.11.1998 / 19:06:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12841
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12842
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12843
_Thread_start: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12844
    "start the thread"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12845
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12846
    | jThread  jName  name  stProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12847
    jThread := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12848
    (jThread instVarNamed: 'priority') < 1 ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12849
        self halt.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12850
        jThread instVarNamed: 'priority' put: 1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12851
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12852
    stProcess := JavaProcess 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12853
                for: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12854
                    | procName |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12855
                    Object abortSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12856
                        handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12857
                            :ex | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12858
                            procName := stProcess name.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12859
                            (procName startsWith: 'JAVA-AWT-EventQueue') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12860
                                ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12861
                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12862
                                ex restart.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12863
                            ] ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12864
                                (stProcess == JavaScreenUpdaterThread 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12865
                                    or: [ stProcess == JavaEventQueueThread ]) 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12866
                                        ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12867
                                            ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12868
                                                infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12869
                                            ex restart
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12870
                                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12871
                                        ifFalse: [ ('JAVA [info]: thread ' , procName , ' aborted.') infoPrintCR. ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12872
                            ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12873
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12874
                        do: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12875
                            [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12876
                                JavaVM javaExceptionSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12877
                                    handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12878
                                        :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12879
                                        | exClass |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12880
                                        procName := stProcess name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12881
                                        exClass := ex parameter class.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12882
                                        exClass == (Java at: 'java.lang.ThreadDeath') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12883
                                            ('JAVA: thread ' , procName , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12884
                                        ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12885
                                            Transcript 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12886
                                                showCR: ('JAVA: thread ''' , procName , ''' terminated with exception: ' 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12887
                                                        , exClass name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12888
                                        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12889
                                        ex return.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12890
                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12891
                                    do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12892
                                        Object messageNotUnderstoodSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12893
                                            handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12894
                                                :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12895
                                                | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12896
                                                "/ remap doesNotUnderstand with nil-receiver to
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12897
                                                "/ a nullPointerException ...
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12898
                                                 con  m |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12899
                                                con := ex suspendedContext.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12900
                                                con receiver isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12901
                                                    ((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
 12902
                                                        self throwNullPointerException.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12903
                                                        AbortSignal raise.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 12904
                                                        
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12905
                                                        "/ ex proceed.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12906
                                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12907
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12908
                                                ex reject.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12909
                                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12910
                                            do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12911
                                                "/ 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
 12912
                                                jThread perform: #'run()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12913
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12914
                                                    ('JAVA: thread ' , stProcess name , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12915
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12916
                                                jThread perform: #'exit()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12917
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12918
                                                    ('JAVA: after exit of thread ' , stProcess name) infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12919
                                                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12920
                                            ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12921
                                    ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12922
                            ] ensure: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12923
                                | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12924
                                monitors := EnteredMonitorsPerProcess at: stProcess ifAbsent: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12925
                                monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12926
                                    monitors do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12927
                                        :obj | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12928
                                        | mon |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12929
                                        mon := self monitorFor: obj.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12930
                                        mon notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12931
                                            mon owningProcess == stProcess ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12932
                                                ('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
 12933
                                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12934
                                                mon exit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12935
                                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12936
                                        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12937
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12938
                                    EnteredMonitorsPerProcess removeKey: stProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12939
                                    stProcess == JavaScreenUpdaterThread ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12940
                                        JavaScreenUpdaterThread := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12941
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12942
                                    stProcess == JavaEventQueueThread ifTrue: [ JavaEventQueueThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12943
                                    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12944
"/                                    screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12945
"/                                    screenUpdaterClass notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12946
"/                                        screenUpdaterClass instVarNamed:'updater' put:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12947
"/                                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12948
                                ].
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 12949
                                Java removeThread: jThread ifAbsent: [].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12950
                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12951
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12952
                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12953
                priority: (Processor activePriority).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12954
    jName := jThread instVarNamed: 'name'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12955
    jName isString ifFalse: [ name := Java as_ST_String: jName. ] ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12956
        name := jName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12957
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12958
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12959
    "/ kludge - remember the ScreenUpdater ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12960
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12961
    name = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12962
        name = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12963
            (name startsWith: 'AWT-EventQueue') ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12964
                JavaEventQueueThread := stProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12965
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12966
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12967
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12968
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12969
"/name = 'UserDialogShowThread' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12970
"/self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12971
"/].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12972
    "/ when that process terminates, wakup any waiters
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12973
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12974
    stProcess addExitAction: [ self notify: jThread ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12975
    stProcess name: 'JAVA-' , name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12976
    stProcess restartable: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12977
    stProcess resume.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 12978
    Java addThread: jThread for: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12979
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12980
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12981
    "Created: / 03-01-1998 / 02:05:52 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12982
    "Modified: / 24-12-1999 / 03:14:33 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 12983
    "Modified: / 09-12-2011 / 12:52:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12984
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12985
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12986
_Thread_suspend0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12987
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12989
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12990
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12991
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12992
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12993
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12994
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12995
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12996
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12997
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12998
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12999
    stProcess suspend
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13001
    "Created: / 8.1.1998 / 01:05:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13002
    "Modified: / 6.2.1998 / 02:15:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13003
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13005
_Throwable_printStackTrace0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13006
    |out outStream exceptionObject contextList|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13007
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13008
    outStream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13009
    exceptionObject := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13011
    contextList := exceptionObject instVarNamed:'backtrace'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13012
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13013
    out := self javaConsoleStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13014
    out cr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13015
    out nextPutLine:'JAVA: stackTrace:'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13017
    contextList do:[:con |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13018
	out 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13019
	    nextPutAll:'  '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13020
	    nextPutAll:(con method javaClass fullName);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13021
	    nextPutAll:'.';
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13022
	    nextPutAll:(con method selector);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13023
	    nextPutAll:' ['; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13024
	    nextPutAll:(con method javaClass sourceFile); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13025
	    nextPutAll:' '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13026
	    nextPutAll:(con quickLineNumber displayString); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13027
	    nextPutAll:']'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13028
	out cr
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13029
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13030
    out nextPutLine:'----------------------------------------------------'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13032
    "Created: / 4.1.1998 / 14:27:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13033
    "Modified: / 10.11.1998 / 14:19:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13034
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13035
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13036
_URLConnection_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13037
    "/ void close ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13038
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13040
    "Created: / 12.11.1998 / 19:26:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13041
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13042
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13043
_URLConnection_finalize:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13044
    "/ void finalize ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13045
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13047
    "Created: / 12.11.1998 / 19:25:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13048
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13049
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13050
_URLConnection_getContentLength0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13051
    "/ int getContentLength0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13052
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13054
    "Created: / 12.11.1998 / 19:25:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13055
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13056
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13057
_URLConnection_getContentType0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13058
    "/ java.lang.String getContentType0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13059
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13061
    "Created: / 12.11.1998 / 19:25:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13062
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13064
_URLConnection_getHeaderField0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13065
    "/ java.lang.String getHeaderField0 (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13066
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13068
    "Created: / 12.11.1998 / 19:25:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13069
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13071
_URLConnection_pCreate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13072
    "/ void pCreate (java.lang.String java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13073
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13075
    "Created: / 12.11.1998 / 19:25:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13076
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13077
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13078
_URLInputStream_available:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13079
    "/ int available ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13080
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13082
    "Created: / 12.11.1998 / 19:24:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13083
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13085
_URLInputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13086
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13087
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13089
    "Created: / 12.11.1998 / 19:24:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13090
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13091
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13092
_URLInputStream_read:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13093
    "/ int read (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13094
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13095
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13096
    "Created: / 12.11.1998 / 19:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13097
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13098
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13099
_URLOutputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13100
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13101
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13103
    "Created: / 12.11.1998 / 19:24:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13104
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13106
_URLOutputStream_pClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13107
    "/ void pClose ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13108
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13109
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13110
    "Created: / 12.11.1998 / 19:25:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13111
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13113
_URLOutputStream_write:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13114
    "/ void write (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13115
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13117
    "Created: / 12.11.1998 / 19:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13118
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13120
_URLOutputStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13121
    "/ void writeBytes (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13122
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13124
    "Created: / 12.11.1998 / 19:24:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13125
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13127
_URLStreamHandlerFactory_pInit:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13128
    "/ self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13130
    "Created: / 10.1.1998 / 15:47:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13131
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13133
_URLStreamHandlerFactory_pSupportsProtocol:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13134
    "/ boolean pSupportsProtocol (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13135
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13137
    "Created: / 12.11.1998 / 19:23:43 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13138
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13139
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13140
_VM_getState:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13141
    "/ int getState ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13142
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13144
    "Created: / 12.11.1998 / 19:06:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13145
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13146
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13147
_VM_resetJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13148
    "/ void resetJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13149
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13150
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13151
    "Created: / 14.11.1998 / 10:43:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13152
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13153
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13154
_VM_resumeJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13155
    "/ void resumeJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13156
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13157
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13158
    "Created: / 14.11.1998 / 10:42:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13159
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13161
_VM_suspendJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13162
    "/ void suspendJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13163
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13165
    "Created: / 14.11.1998 / 10:43:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13166
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13167
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13168
_VM_threadsSuspended:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13169
    "/ boolean threadsSuspended ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13170
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13171
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13172
    "Created: / 12.11.1998 / 19:07:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13173
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13174
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13175
_VM_unsuspendSomeThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13176
    "/ void unsuspendSomeThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13177
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13178
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13179
    "Created: / 12.11.1998 / 19:07:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13180
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13181
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13182
_VM_unsuspendThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13183
    "/ void unsuspendThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13184
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13186
    "Created: / 12.11.1998 / 19:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13187
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13188
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13189
_VM_writeJavaMonitorReport:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13190
    "/ void writeJavaMonitorReport ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13191
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13193
    "Created: / 14.11.1998 / 10:43:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13194
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13196
_WButtonPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13197
    |jButtonPeer jButton jFrame frame button
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13198
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13200
    jButtonPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13201
    jButton := jButtonPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13203
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13204
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13206
    button := Button in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13207
    button sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13208
    button action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13209
			jButtonPeer perform:#'handleAction()V'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13210
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13212
    lbl := jButton instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13213
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13214
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13215
	button label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13216
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13217
    self createdWindowsView:button for:jButtonPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13218
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13219
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13220
	'WButtonPeer_create: ' print. frame print. ' -> ' print. button printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13221
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13223
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13224
    "Modified: / 11.12.1998 / 00:19:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13225
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13227
_WButtonPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13228
    |label jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13230
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13232
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13233
    label label:(Java as_ST_String:jString)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13235
    "Modified: / 8.1.1998 / 17:35:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13236
    "Created: / 1.2.1998 / 17:05:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13237
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13239
_WCanvasPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13240
    |jCanvasPeer jFrame frame subView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13242
    jCanvasPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13244
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13245
    jFrame isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13246
	self halt:'no frame in canvasPeer create'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13247
	subView := JavaView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13248
"/        self internalError:'no frame in canvasPeer create'.     
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13249
"/        ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13250
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13251
	frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13252
	subView := JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13253
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13255
    subView delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13256
    subView javaPeer:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13258
    self createdWindowsView:subView for:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13260
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13261
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13262
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13264
    "Created: / 5.1.1998 / 00:59:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13265
    "Modified: / 16.1.1998 / 13:40:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13266
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13268
_WCheckboxMenuItemPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13269
    "/ void setState (boolean)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13270
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13272
    "Created: / 12.11.1998 / 19:14:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13273
    "Modified: / 3.12.1998 / 21:41:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13274
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13276
_WCheckboxPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13277
    |jCheckboxPeer jCheckbox jFrame frame checkBox lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13279
    jCheckboxPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13280
    jCheckbox := jCheckboxPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13282
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13283
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13285
    checkBox := CheckBox in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13286
    checkBox action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13287
			jCheckboxPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13288
			    perform:#'handleAction(Z)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13289
			    with:(checkBox isOn ifTrue:[1] ifFalse:[0])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13290
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13292
    lbl := jCheckbox instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13293
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13294
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13295
	checkBox label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13296
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13298
    self createdWindowsView:checkBox for:jCheckboxPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13300
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13301
	'WCheckboxPeer_create: ' print. frame print. ' -> ' print. checkBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13302
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13304
    "Created: / 7.1.1998 / 21:48:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13305
    "Modified: / 15.1.1998 / 12:27:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13306
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13308
_WCheckboxPeer_setCheckboxGroup:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13309
    |checkBox jGroup|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13311
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13312
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13313
    jGroup := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13315
    "Created: / 7.1.1998 / 21:48:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13316
    "Modified: / 25.1.1998 / 01:20:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13317
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13319
_WCheckboxPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13320
    "/ void setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13321
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13323
    "Created: / 12.11.1998 / 19:14:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13324
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13326
_WCheckboxPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13327
    |checkBox state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13329
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13331
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13332
    state ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13333
	checkBox turnOn
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13334
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13335
	checkBox turnOff
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
    "Created: / 7.1.1998 / 21:49:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13339
    "Modified: / 25.1.1998 / 01:26:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13340
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13342
_WChoicePeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13343
    |jString index comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13345
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13347
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13348
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13349
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13350
    comboBox model list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13351
    comboBox model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13352
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13353
    "Created: / 7.1.1998 / 21:45:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13354
    "Modified: / 24.1.1998 / 18:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13355
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13357
_WChoicePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13358
    |jChoicePeer jChoice jFrame frame comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13359
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13360
    jChoicePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13361
    jChoice := jChoicePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13363
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13364
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13366
    comboBox := ComboListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13367
    comboBox model:(SelectionInList new list:(OrderedCollection new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13368
    comboBox action:[:index | 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13369
			jChoicePeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13370
			    perform:#'handleAction(I)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13371
			    with:(comboBox model selectionIndex - 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13372
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13374
    self createdWindowsView:comboBox for:jChoicePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13376
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13377
	'WChoicePeer_create: ' print. frame print. ' -> ' print. comboBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13378
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13380
    "Created: / 7.1.1998 / 21:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13381
    "Modified: / 28.1.1998 / 23:19:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13382
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13383
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13384
_WChoicePeer_remove:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13385
    "/ void remove (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13386
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13388
    "Created: / 12.11.1998 / 19:12:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13389
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13391
_WChoicePeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13392
    self commonReshapeComponent:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13393
"/    self pReshape:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13394
    ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13396
    "Created: / 7.1.1998 / 21:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13397
    "Modified: / 23.12.1998 / 19:08:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13398
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13400
_WChoicePeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13401
    |comboBox index|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13403
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13405
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13406
    comboBox model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13407
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13408
    "Created: / 7.1.1998 / 21:45:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13409
    "Modified: / 25.1.1998 / 09:55:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13410
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13411
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13412
_WClipboard_getClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13413
    "/ java.lang.String getClipboardText ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13415
    |str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13417
    str := Screen current rootView getTextSelection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13418
    str isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13419
	str := ''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13420
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13421
    ^ Java as_String:''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13423
    "Modified: / 10.12.1998 / 21:28:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13424
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13425
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13426
_WClipboard_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13427
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13429
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13430
    "Created: / 4.1.1998 / 19:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13431
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13433
_WClipboard_setClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13434
    "/ void setClipboardText (java.awt.datatransfer.StringSelection)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13436
    |strSel data|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13438
    strSel := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13439
    data := strSel instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13440
    data class == (Java at:'java.lang.String') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13441
	Screen current rootView setTextSelection:(Java as_ST_String:data)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13442
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13443
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13445
    "Created: / 12.11.1998 / 19:15:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13446
    "Modified: / 10.12.1998 / 21:25:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13447
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13448
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13449
_WColor_getDefaultColor: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13450
    | clrIndex  jClr  clr |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13451
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13452
    clrIndex := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13453
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13454
    "/ windows defaults:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13455
    "/  1: view background
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13456
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13457
    clrIndex == 1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13458
        clr := View defaultViewBackgroundColor.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13459
        clr isColor ifFalse: [ clr := Color gray: 50. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13460
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13461
    clrIndex == 2 ifTrue: [ clr := Color black. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13462
    clr isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13463
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13464
        self internalError: 'breakpoint'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13465
        ^ nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13466
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13467
    clr := clr on: (Screen current).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13468
    jClr := (self classForName: 'java.awt.Color') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13469
    jClr instVarNamed: 'pData' put: clr.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13470
    jClr instVarNamed: 'value' put: (clr rgbValue).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13471
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13472
"/ self halt.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13473
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13474
    ^ jClr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13476
    "Created: / 15.8.1997 / 15:38:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13477
    "Modified: / 4.1.1998 / 18:06:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13480
_WComponentPeer__beginValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13481
    "/ void _beginValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13482
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13484
    "Created: / 12.11.1998 / 19:10:08 / cg"
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
_WComponentPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13488
    |view jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13490
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13492
    Object errorSignal catch:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13493
	view destroy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13494
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13495
    JavaWindowGroup removeView:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13497
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13498
    jPeer instVarNamed:'pData' put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13500
    "Created: / 7.1.1998 / 22:36:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13501
    "Modified: / 25.1.1998 / 16:43:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13502
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13504
_WComponentPeer__setBackground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13505
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13507
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13508
    view isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13509
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13510
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13511
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13513
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13514
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13516
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13518
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13519
"/        view viewBackground:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13520
"/        view backgroundPaint:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13521
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13522
"/        (view isMemberOf:JavaView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13523
"/            view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13524
"/            view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13525
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13526
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13528
    (view isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13529
	view := view scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13530
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13531
    view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13532
    view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13533
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13534
    "Created: / 4.1.1998 / 18:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13535
    "Modified: / 4.12.1998 / 17:26:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13536
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13538
_WComponentPeer__setForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13539
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13541
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13543
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13544
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13546
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13547
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13549
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13551
    view paint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13553
    "Created: / 4.1.1998 / 18:08:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13554
    "Modified: / 8.1.1998 / 17:32:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13555
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13556
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13557
_WComponentPeer_disable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13558
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13559
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13560
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13562
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13563
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13564
	view disable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13565
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13567
    "Created: / 6.1.1998 / 18:26:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13568
    "Modified: / 8.1.1998 / 17:32:53 / cg"
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
_WComponentPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13572
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13574
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13576
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13577
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13578
	view enable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13579
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13580
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13581
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13582
    "Created: / 13.1.1998 / 23:08:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13583
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13585
_WComponentPeer_endValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13586
    "/ void endValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13587
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13589
    "Created: / 12.11.1998 / 19:10:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13590
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13591
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13592
_WComponentPeer_getLocationOnScreen: nativeContext 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13593
    "/ java.awt.Point getLocationOnScreen ()
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13594
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13595
    | view  p  jP |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13596
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13597
    view := self viewForWPeer: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13598
    view isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13599
    p := view originRelativeTo: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13600
    jP := (self classForName: 'java.awt.Point') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13601
    jP instVarNamed: 'x' put: p x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13602
    jP instVarNamed: 'y' put: p y.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13603
    ^ jP
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13604
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13605
    "Modified: / 5.12.1998 / 14:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13606
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13608
_WComponentPeer_handleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13609
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13610
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13611
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13612
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13613
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13614
    |view jEv stEv ignore|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13615
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13616
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13617
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13618
	jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13619
	stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13620
	(stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13621
	    ignore := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13622
	    view isJavaView ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13623
		ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13624
	    ] ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13625
		view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13626
		    stEv type == #terminate ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13627
			ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13628
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13629
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13630
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13632
	    ignore ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13633
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13634
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13635
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13636
		view dispatchEvent:stEv. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13637
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13638
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13640
	    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13641
		('JAVA: WComponent - handleEvent ignored:' , stEv type) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13642
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13643
	    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13644
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13645
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13646
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13647
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13648
    ]
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 / 21:10:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13651
    "Modified: / 11.12.1998 / 01:04:14 / 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
_WComponentPeer_hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13655
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13656
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13657
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13658
"/ view isPopUpView ifTrue:[self halt].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13660
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13661
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13662
	view beInvisible
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
    "Created: / 7.1.1998 / 22:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13666
    "Modified: / 4.12.1998 / 17:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13667
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13669
_WComponentPeer_nativeHandleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13670
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13671
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13672
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13673
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13675
    |view jEv stEv|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13677
^self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13678
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13679
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13680
	(view isKindOf:JavaView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13681
	    jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13682
	    stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13683
	    (stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13684
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13685
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13686
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13687
		stEv sendEventWithFocusOn:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13688
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13689
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13690
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13691
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13692
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13693
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13694
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13695
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13696
    "Created: / 19.10.1998 / 21:26:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13697
    "Modified: / 19.10.1998 / 23:26:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13698
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13699
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13700
_WComponentPeer_requestFocus:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13701
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13703
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13704
"/ 'getFocus - ' print. view displayString printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13706
"/    view getKeyboardFocus
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13708
    "Created: / 7.1.1998 / 22:30:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13709
    "Modified: / 4.12.1998 / 19:42:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13710
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13712
_WComponentPeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13713
    self commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13715
    "Modified: / 18.3.1997 / 19:30:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13716
    "Created: / 4.1.1998 / 18:01:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13717
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13718
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13719
_WComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13720
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13721
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13722
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13724
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13725
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13726
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13727
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13728
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13730
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13731
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13732
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13733
"/        view viewBackground:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13734
"/        view backgroundPaint:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13735
"/    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13736
"/        (view isMemberOf:JavaView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13737
"/            view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13738
"/            view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13739
"/        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13740
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13741
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13742
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13743
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13744
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13745
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13746
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13747
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13748
    "Created: / 16.10.1998 / 02:16:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13749
    "Modified: / 16.10.1998 / 02:26:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13750
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13751
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13752
_WComponentPeer_setCursor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13753
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13755
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13756
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13757
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13758
    "Created: / 5.1.1998 / 01:52:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13759
    "Modified: / 25.1.1998 / 01:21:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13760
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13761
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13762
_WComponentPeer_setFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13763
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13765
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13766
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13768
    "Created: / 5.1.1998 / 00:55:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13769
    "Modified: / 25.1.1998 / 01:22:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13770
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13771
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13772
_WComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13773
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13775
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13776
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13777
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13778
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13779
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13780
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13782
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13783
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13784
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13785
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13786
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13787
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13788
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13789
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13790
    "Created: / 16.10.1998 / 02:18:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13791
    "Modified: / 16.10.1998 / 02:26:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13792
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13793
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13794
_WComponentPeer_setZOrderPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13795
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13796
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13797
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13798
"/    self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13799
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13800
"/ self internalError:'breakPoint'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13802
    "Created: / 4.1.1998 / 17:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13803
    "Modified: / 25.1.1998 / 01:22:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13804
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13806
_WComponentPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13807
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13809
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13811
    "/ frame views are under my browsers own control
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13812
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13813
	view beVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13814
	view realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13815
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13816
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13817
"/    view windowGroup notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13818
"/        windowServer addGroup:(view windowGroup)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13819
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13821
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13823
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13825
    "Created: / 5.1.1998 / 01:26:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13826
    "Modified: / 4.12.1998 / 17:43:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13827
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13829
_WComponentPeer_start:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13830
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13832
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13833
    "Created: / 5.1.1998 / 00:58:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13834
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13835
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13836
_WContainerPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13837
    "/ new with ns4.0 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13838
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13839
    "Created: / 16.10.1998 / 02:12:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13840
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13841
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13842
_WDefaultFontCharset_canConvert:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13843
    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13845
    "Modified: / 21.8.1997 / 15:56:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13846
    "Created: / 5.1.1998 / 01:55:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13847
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13848
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13849
_WDialogPeer__hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13850
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13852
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13854
    dialog hide.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13856
    "Created: / 7.1.1998 / 22:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13857
    "Modified: / 8.1.1998 / 17:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13858
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13860
_WDialogPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13861
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13862
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13863
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13864
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13865
"/ show does not work (yet); must setup windowgroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13866
"/ for it to get events ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13867
"/    dialog realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13869
dialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13870
"/dialog fixSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13871
"/dialog makeFullyVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13872
"/dialog openModal:[true] inGroup:JavaWindowGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13874
    "Created: / 7.1.1998 / 21:52:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13875
    "Modified: / 11.12.1998 / 14:43:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13876
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13878
_WDialogPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13879
    |jDialogPeer dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13880
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13881
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13883
    dialog := ModalBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13884
    jDialogPeer instVarNamed:'pData' put:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13886
    self createdWindowsView:dialog for:jDialogPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13887
    dialog windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13888
    JavaWindowGroup addTopView:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13889
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13890
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13891
	'WDialogPeer_create: ' print. dialog printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13892
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13894
    "Created: / 7.1.1998 / 21:51:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13895
    "Modified: / 15.1.1998 / 16:12:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13898
_WDrawingSurfaceInfo_getDepth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13899
    "/ int getDepth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13900
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13902
    "Created: / 12.11.1998 / 19:21:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13903
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13905
_WDrawingSurfaceInfo_getHBitmap:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13906
    "/ int getHBitmap ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13907
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13908
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13909
    "Created: / 12.11.1998 / 19:20:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13910
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13912
_WDrawingSurfaceInfo_getHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13913
    "/ int getHDC ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13914
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13916
    "Created: / 12.11.1998 / 19:20:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13917
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13918
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13919
_WDrawingSurfaceInfo_getHPalette:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13920
    "/ int getHPalette ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13921
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13923
    "Created: / 12.11.1998 / 19:21:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13924
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13926
_WDrawingSurfaceInfo_getHWnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13927
    "/ int getHWnd ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13928
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13930
    "Created: / 12.11.1998 / 19:20:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13931
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13933
_WDrawingSurfaceInfo_getPBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13934
    "/ int getPBits ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13935
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13936
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13937
    "Created: / 12.11.1998 / 19:20:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13938
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13940
_WDrawingSurfaceInfo_lock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13941
    "/ int lock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13942
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13944
    "Created: / 12.11.1998 / 19:20:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13945
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13947
_WDrawingSurfaceInfo_unlock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13948
    "/ void unlock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13949
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13951
    "Created: / 12.11.1998 / 19:20:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13952
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13954
_WEmbeddedFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13955
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13956
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13958
    "Created: / 12.11.1998 / 19:16:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13959
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13960
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13961
_WFileDialogPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13962
    |jDialogPeer jDialog dialogView stDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13963
     title dir pattern f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13965
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13966
    jDialog := jDialogPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13967
    dialogView := jDialogPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13969
    stDialog := FileSelectionBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13971
    dir := jDialog instVarNamed:'dir'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13972
    dir notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13973
	stDialog directory:(Java as_ST_String:dir).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13974
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13975
    pattern := jDialog instVarNamed:'file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13976
    pattern notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13977
	stDialog pattern:(Java as_ST_String:pattern).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13978
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13979
    title := jDialog instVarNamed:'title'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13980
    title notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13981
	stDialog title:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13982
	stDialog label:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13983
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13985
    stDialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13986
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13987
    stDialog accepted ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13988
	f := stDialog pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13989
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13990
	"/ cannot use the one below - it has a builtIn fileSeparator if '\' (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13991
	"/ jDialogPeer perform:#'handleSelected(Ljava/lang/String;)V' with:(Java as_String:f).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13993
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13994
	    perform:#'setFile(Ljava/lang/String;)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13995
	    with:(Java as_String:(f asFilename baseName)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13996
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13997
	    perform:#'setDirectory(Ljava/lang/String;)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13998
	    with:(Java as_String:(f asFilename directoryName , Filename separator asString)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13999
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14000
	    perform:#'setVisible(Z)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14001
	    with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14002
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14003
	jDialogPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14004
	    perform:#'handleCancel()V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14005
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14006
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14008
    "Created: / 7.1.1998 / 22:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14009
    "Modified: / 15.1.1998 / 13:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14010
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14011
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14012
_WFontMetrics_bytesWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14013
    "/ int bytesWidth (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14014
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14016
    "Created: / 12.11.1998 / 19:11:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14017
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14019
_WFontMetrics_getMFCharSegmentWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14020
    "get multi-font string-segment width.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14021
     Not yet supported - use standard strings width"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14023
    |jMetrics jFont jFontDescr stFont w
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14024
     bool1 cp offs lenght bp int1|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14026
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14027
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14028
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14029
    bool1 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14030
    cp := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14031
    offs := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14032
    lenght := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14033
    bp := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14034
    int1 := nativeContext argAt:8.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14036
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14037
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14038
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14039
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14040
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14041
    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14042
	stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14043
	jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14044
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14045
    w := stFont widthOf:cp from:offs+1 to:offs+lenght.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14046
    ^ w.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14047
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14048
    "Created: / 5.1.1998 / 01:57:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14049
    "Modified: / 13.1.1998 / 23:44:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14050
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14052
_WFontMetrics_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14053
    |jMetrics jFont stFont widths family name style size|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14055
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14056
    jFont := jMetrics instVarNamed:'font'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14058
    family := jFont instVarNamed:'family'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14059
    family := Java as_ST_String:family.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14061
    name := jFont instVarNamed:'name'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14062
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14064
    style := jFont instVarNamed:'style'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14065
    size := jFont instVarNamed:'size'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14067
    stFont := Font family:family size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14068
    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14069
        stFont := Font family:'helvetica' size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14070
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14071
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14072
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14073
"/    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14074
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14075
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14076
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14077
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14078
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14079
    jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14081
    jMetrics instVarNamed:'ascent'     put:stFont ascent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14082
    jMetrics instVarNamed:'descent'    put:stFont descent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14083
    jMetrics instVarNamed:'leading'    put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14084
    jMetrics instVarNamed:'height'     put:stFont height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14085
    jMetrics instVarNamed:'maxAscent'  put:stFont maxAscent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14086
    jMetrics instVarNamed:'maxDescent' put:stFont maxDescent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14087
    jMetrics instVarNamed:'maxHeight'  put:stFont maxHeight.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14088
    jMetrics instVarNamed:'maxAdvance' put:stFont maxWidth.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14090
    widths := Array new:256.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14091
    0 to:255 do:[:i |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14092
        widths at:(i+1) put:(stFont widthOf:(Character value:i))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14093
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14094
    jMetrics instVarNamed:'widths' put:widths.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14095
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14096
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14097
    "Modified: / 8.8.1997 / 12:06:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14098
    "Created: / 5.1.1998 / 01:54:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14099
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14101
_WFontMetrics_needsConversion:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14102
    |jFont jFontDescr stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14103
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14104
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14105
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14107
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14108
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14109
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14110
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14111
"/    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14112
"/        stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14113
"/        jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14114
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14115
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14117
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14119
    "Modified: / 17.8.1997 / 17:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14120
    "Created: / 5.1.1998 / 01:56:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14121
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14122
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14123
_WFramePeer__setIconImage:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14124
    |frame imgRep image|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14126
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14127
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14128
    imgRep notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14129
	image := imgRep instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14130
	(image notNil and:[image ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14131
	    frame icon:image.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14132
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14133
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14135
    "Created: / 27.4.1998 / 17:15:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14136
    "Modified: / 27.4.1998 / 17:18:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14137
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14139
_WFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14140
    |jFramePeer jFrame top frame pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14142
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14144
    "/ for now: a kludge to create an embedded frame for
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14145
    "/ mozillaFrames
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14146
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14147
    jFrame := jFramePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14148
    (jFrame notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14149
    and:[(pDataIdx := jFrame class instVarOffsetOf:'pData') notNil])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14150
    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14151
	((frame := jFrame instVarAt:pDataIdx) notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14152
	and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14153
	    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14154
		'JAVA: targetFrame view already created: ' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14155
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14156
	    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14157
	    pDataIdx := jFramePeer class instVarOffsetOf:'pNativeWidget'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14158
	    pDataIdx isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14159
		"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14160
		pDataIdx := jFramePeer class instVarOffsetOf:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14161
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14162
	    jFramePeer instVarAt:pDataIdx put:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14163
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14164
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14165
	frame := jFramePeer instVarNamed:'pData'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14166
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14167
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14168
    (frame notNil and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14169
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14170
	    'JAVA: frame view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14171
	    jFramePeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14172
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14173
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14174
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14175
"/        frame := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14176
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14177
"/        JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14179
	frame := JavaTopView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14180
	frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14181
	frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14182
	self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14183
	JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14185
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14186
"/        frame := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14187
"/        frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14188
"/        frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14189
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14190
"/        JavaWindowGroup addTopView:top.
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
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14194
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14195
	'JAVA: WFramePeer_create: ' print. jFramePeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14196
	' frame: ' print. frame printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14197
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14199
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14200
    "Modified: / 3.12.1998 / 00:10:21 / cg"
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
_WFramePeer_setMenuBar0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14204
    |frame jMenuBarPeer menuPanel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14206
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14208
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14209
    jMenuBarPeer isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14210
	"/ mhmh - JAVA wants to remove the frames menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14211
	"/ but I have no handle on it (for destroy).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14212
	"/ search it in subViews of the frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14213
	frame subViews copy do:[:v |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14214
	    (v isKindOf:MenuPanel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14215
		v destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14216
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14217
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14218
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14219
	menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14221
	menuPanel origin:0.0@0.0 corner:1.0@(menuPanel preferredExtent y).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14222
	frame addSubView:menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14223
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14224
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14226
    "Created: / 7.1.1998 / 21:41:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14227
    "Modified: / 8.1.1998 / 17:35:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14228
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14229
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14230
_WFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14231
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14233
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14234
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14235
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14236
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14237
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14238
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14239
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14240
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14241
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14242
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14243
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14244
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14245
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14246
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14247
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14248
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14250
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14251
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14252
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14254
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14255
    "Created: / 16.10.1998 / 02:21:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14256
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14258
_WFramePeer_setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14259
    |view jString string|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14261
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14262
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14263
    jString := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14264
    string := Java as_ST_String:jString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14266
"/ 'JAVA: WFramePeer_pSetTitle: ' print. string print. ' ' print. view printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14268
    view label:string.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14269
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14270
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14271
    "Modified: / 8.1.1998 / 17:37:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14272
    "Created: / 27.1.1998 / 21:42:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14273
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14274
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14275
_WGraphics__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14276
    "/ void _dispose()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14277
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14279
    "Created: / 12.11.1998 / 19:17:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14280
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14282
_WGraphics_changeClip:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14283
    |gc x y w h r bool|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14285
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14287
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14288
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14289
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14290
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14291
    bool := (nativeContext argAt:5) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14293
    r := Rectangle left:x top:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14294
"/ 'WGraphics_changeClip: ' infoPrint. r infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14295
    gc clippingRectangle:r.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14297
    "Created: / 6.1.1998 / 20:57:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14298
    "Modified: / 20.10.1998 / 19:40:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14299
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14301
_WGraphics_clearRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14302
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14304
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14305
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14307
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14308
	'JAVA: drawing on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14309
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14310
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14312
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14313
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14314
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14315
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14317
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14318
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14320
    gc clearRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14322
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14323
    "Modified: / 8.1.1998 / 00:21:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14324
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14326
_WGraphics_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14327
    "/ void close (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14328
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14330
    "Created: / 12.11.1998 / 19:19:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14331
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14333
_WGraphics_copyArea:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14334
    |gc srcX srcY w h deltaX deltaY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14335
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14336
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14337
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14338
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14339
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14340
	'JAVA: copyArea on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14341
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14342
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14344
    srcX := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14345
    srcY := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14346
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14347
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14348
    deltaX := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14349
    deltaY := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14351
    gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14352
	copyFrom:gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14353
	x:srcX y:srcY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14354
	toX:srcX+deltaX y:srcY+deltaY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14355
	width:w height:h
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14357
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14358
    "Modified: / 9.4.1998 / 22:01:32 / cg"
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
_WGraphics_createFromComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14362
    |jGraphics jWin view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14363
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14364
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14365
    jWin := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14367
    view := KnownWindows at:jWin ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14368
    view isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14369
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14370
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14371
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14372
    view clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14374
"/    "/ just a consistency check ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14375
"/    (jWin instVarNamed:'xid') ~~ view ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14376
"/        self halt:'consistency check'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14377
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14379
    jGraphics instVarNamed:'pData' put:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14381
    "Created: / 6.1.1998 / 20:55:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14382
    "Modified: / 20.10.1998 / 19:38:18 / 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
_WGraphics_createFromGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14386
    |jGraphics graphics gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14388
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14389
    graphics := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14390
    gc := graphics instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14392
    jGraphics instVarNamed:'pData' put:gc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14393
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14395
    "Created: / 8.1.1998 / 00:47:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14396
    "Modified: / 20.10.1998 / 19:37:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14397
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14399
_WGraphics_createFromHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14400
    "/ void createFromHDC (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14401
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14403
    "Created: / 12.11.1998 / 19:17:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14404
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14405
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14406
_WGraphics_createFromPrintJob:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14407
    "/ void createFromPrintJob (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14408
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14410
    "Created: / 12.11.1998 / 19:17:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14411
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14413
_WGraphics_dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14414
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14416
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14417
    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14418
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14420
    "Created: / 6.1.1998 / 20:58:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14421
    "Modified: / 20.10.1998 / 19:35:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14422
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14424
_WGraphics_drawArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14425
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14427
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14428
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14429
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14431
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14432
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14433
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14434
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14435
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14436
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14438
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14439
	'drawArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14440
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14441
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14442
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14443
    gc 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14444
	displayArcX:x y:y 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14445
	width:w height:h 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14446
	from:startAngle angle:(endAngle - startAngle).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14448
    "Created: / 6.1.1998 / 21:00:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14449
    "Modified: / 28.1.1999 / 17:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14450
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14452
_WGraphics_drawBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14453
    "/ void drawBytes (byte[] int int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14454
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14456
    "Created: / 12.11.1998 / 19:18:56 / 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
_WGraphics_drawLine:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14460
    |gc x y x2 y2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14462
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14463
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14464
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14466
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14467
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14468
    x2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14469
    y2 := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14471
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14472
	'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
 14473
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14474
    gc displayLineFromX:x y:y toX:x2 y:y2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14476
    "Created: / 6.1.1998 / 20:59:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14477
    "Modified: / 8.1.1998 / 00:34:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14480
_WGraphics_drawMFCharsConvertedSegment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14481
    "/ int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14482
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14484
    "Created: / 12.11.1998 / 19:18:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14485
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14487
_WGraphics_drawMFCharsSegment:nativeContext       
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14488
    |jFont jFontDescr s gc x y offs len|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14490
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14491
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14493
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14494
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14495
    s := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14496
    offs := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14497
    len := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14498
    x := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14499
    y := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14501
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14502
	'drawMFCharsSegment x/y= ' print. x print. '@' print. y print. ' s= ' print. s printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14503
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14504
    gc displayString:s from:offs+1 to:offs+len x:x y:y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14505
    ^ (gc font onDevice:(gc graphicsDevice)) widthOf:s.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14507
    "Created: / 6.1.1998 / 21:01:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14508
    "Modified: / 25.1.1998 / 20:45:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14509
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14511
_WGraphics_drawOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14512
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14514
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14515
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14516
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14518
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14519
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14520
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14521
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14523
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14524
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14525
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14526
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14527
    gc displayArcX:x y:y width:w height:h from:0 angle:360.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14529
    "Created: / 8.1.1998 / 00:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14530
    "Modified: / 9.4.1998 / 22:10:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14531
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14533
_WGraphics_drawPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14534
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14536
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14537
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14538
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14540
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14541
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14542
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14544
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14545
	'drawPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14546
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14547
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14548
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14549
    gc displayPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14551
    "Created: / 8.1.1998 / 00:57:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14552
    "Modified: / 8.1.1998 / 00:57:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14553
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14555
_WGraphics_drawPolyline:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14556
    "/ void drawPolyline (int[] int[] int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14557
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14559
    "Created: / 12.11.1998 / 19:19:07 / cg"
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
_WGraphics_drawRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14563
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14565
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14566
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14567
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14568
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14569
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14570
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14571
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14572
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14574
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14575
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14576
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14577
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14579
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14580
    "Created: / 8.1.1998 / 00:59:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14581
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14583
_WGraphics_drawRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14584
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14585
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14586
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14587
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14588
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14589
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14590
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14591
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14592
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14593
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14595
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14596
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14597
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14598
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14600
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14601
    "Created: / 8.1.1998 / 00:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14602
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14604
_WGraphics_drawSFChars:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14605
    "/ void drawSFChars (char[]s, int pos1, int len, int x, int y)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14606
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14607
    |gc str x y idx1 nChars|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14608
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14609
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14610
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14611
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14612
    str := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14613
    idx1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14614
    nChars := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14615
    x := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14616
    y := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14618
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14619
	'drawSFChars x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14620
	       ' s= ' print. str printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14621
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14622
    gc displayString:str from:idx1+1 to:idx1+nChars x:x y:y
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14624
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14625
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14629
_WGraphics_fillArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14630
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14632
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14633
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14634
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14635
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14636
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14637
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14638
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14639
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14640
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14641
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14643
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14644
	'fillArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14645
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14646
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14647
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14648
    gc fillArcX:x y:y width:w height:h from:startAngle angle:(endAngle - startAngle)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14650
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14651
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14652
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14654
_WGraphics_fillOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14655
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14656
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14657
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14658
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14659
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14661
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14662
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14663
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14664
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14666
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14667
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14668
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14669
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14670
    gc fillArcX:x y:y width:w height:h from:0 angle:360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14672
    "Created: / 8.1.1998 / 00:46:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14673
    "Modified: / 8.1.1998 / 00:46:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14674
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14676
_WGraphics_fillPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14677
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14679
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14680
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14681
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14683
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14684
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14685
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14686
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14687
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14688
	'fillPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14689
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14691
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14692
    gc fillPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14694
    "Created: / 8.1.1998 / 00:58:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14695
    "Modified: / 25.1.1998 / 11:03:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14696
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14698
_WGraphics_fillRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14699
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14701
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14702
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14703
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14705
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14706
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14707
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14708
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14710
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14711
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14712
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14713
    gc fillRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14715
    "Created: / 15.8.1997 / 15:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14716
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14717
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14719
_WGraphics_fillRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14720
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14722
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14723
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14724
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14725
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14726
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14727
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14728
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14729
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14730
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14731
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14732
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14734
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14736
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14737
    "Created: / 8.1.1998 / 00:59:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14738
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14739
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14740
_WGraphics_getClipBounds: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14741
    | gc  rect  r  x  y  w  h |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14742
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14743
    gc := self gcForWGraphics: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14744
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14745
"/    gc isNil ifTrue:[^ nil].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14746
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14747
    rect := (self classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14748
    (gc isMemberOf: JavaView) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14749
        "/ r := gc clippingRectangleOrNil. 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14750
        r := gc getNextUpdateRectangle.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14751
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14752
    r isNil ifTrue: [ r := gc clippingRectangleOrNil. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14753
    r isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14754
        x := y := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14755
        w := (gc width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14756
        h := (gc height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14757
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14758
        x := (r left).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14759
        y := (r top).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14760
        w := (r width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14761
        h := (r height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14762
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14763
    rect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14764
    rect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14765
    rect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14766
    rect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14767
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14768
"/ 'WGraphics__getClipBounds ' infoPrint. (x@y extent:w@h) infoPrintCR.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14769
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14770
    ^ rect
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14772
    "Created: / 6.1.1998 / 20:58:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14773
    "Modified: / 23.12.1998 / 20:14:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14774
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14776
_WGraphics_imageCreate:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14777
    |jGraphics imgRep|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14779
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14780
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14782
    jGraphics instVarNamed:'pData' put:(imgRep instVarNamed:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14783
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14785
    "Created: / 11.1.1998 / 16:34:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14786
    "Modified: / 17.1.1998 / 12:37:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14787
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14789
_WGraphics_pSetFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14790
    |gc jFont stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14792
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14793
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14795
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14796
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14797
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14798
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14799
	gc font:stFont
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14800
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14802
    "Created: / 6.1.1998 / 20:56:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14803
    "Modified: / 15.1.1998 / 12:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14804
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14806
_WGraphics_pSetForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14807
    |gc rgb clr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14809
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14811
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14812
    rgb isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14813
        "/ its a java.awt.Color
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14814
        rgb := rgb instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14815
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14816
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14817
    gc paint:(clr nearestOn:gc device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14819
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14820
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14822
    "Created: / 6.1.1998 / 20:56:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14823
    "Modified: / 23.12.1998 / 20:10:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14824
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14826
_WGraphics_print:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14827
    "/ void print (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14828
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14830
    "Created: / 12.11.1998 / 19:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14831
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14833
_WGraphics_removeClip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14834
    "/ void removeClip ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14835
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14837
    "Created: / 12.11.1998 / 19:18:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14838
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14840
_WGraphics_setPaintMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14841
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14843
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14844
    gc function:#copy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14846
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14847
	'copyMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14848
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14850
    "Created: / 8.1.1998 / 00:33:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14851
    "Modified: / 28.1.1998 / 23:25:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14852
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14854
_WGraphics_setXORMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14855
    |gc jColor rgb invColor device|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14857
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14858
    jColor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14859
    device := gc graphicsDevice.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14861
"/    "/ on trueColor systems, use the provided
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14862
"/    "/ rgb value for inverting.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14863
"/    "/ on palette systems, use white ^ black
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14864
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14865
"/    device visualType == #TrueColor ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14866
"/        rgb := jColor instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14867
"/        rgb := rgb bitAnd:16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14868
"/        rgb == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14869
"/            rgb := 16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14870
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14871
"/        invColor := rgb
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14872
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14873
"/        invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14874
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14876
    invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14878
"/    gc foreground:(Color colorId:invColor)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14879
"/       background:device blackColor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14880
    device 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14881
	setForeground:invColor background:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14882
	in:gc gcId.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14883
    gc function:#xor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14885
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14886
	'xorMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14887
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14889
    "Created: / 8.1.1998 / 00:36:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14890
    "Modified: / 28.1.1998 / 23:45:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14891
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14893
_WLabelPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14894
    |jLabelPeer jLabel jFrame frame label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14895
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14896
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14897
    jLabelPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14898
    jLabel := jLabelPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14900
    lbl := jLabel instVarNamed:'text'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14901
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14902
	lbl := Java as_ST_String:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14903
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14905
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14906
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14908
    label := Label in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14909
    label sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14910
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14911
	label label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14912
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14913
    self createdWindowsView:label for:jLabelPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14915
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14916
	'WLabelPeer_create: ' print. frame print. ' -> ' print. label printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14917
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14918
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14919
    "Created: / 7.1.1998 / 21:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14920
    "Modified: / 13.1.1998 / 22:10:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14921
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14923
_WLabelPeer_setAlignment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14924
    |label alignNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14926
    alignNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14927
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14928
    label notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14929
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14930
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14931
    "Created: / 7.1.1998 / 21:43:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14932
    "Modified: / 8.1.1998 / 17:35:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14933
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14934
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14935
_WLabelPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14936
    |label jString str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14937
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14938
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14940
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14941
    jString notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14942
	str := Java as_ST_String:jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14943
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14944
    label label:str
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14945
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14946
    "Created: / 7.1.1998 / 21:43:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14947
    "Modified: / 3.12.1998 / 14:59:18 / cg"
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
_WListPeer__addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14951
    |jString index1 length selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14952
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14953
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14954
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14955
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14956
    index1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14957
    length := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14959
    (m := selListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14960
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14961
	m changed:#list.
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
    "Created: / 26.10.1998 / 20:11:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14965
    "Modified: / 14.11.1998 / 01:21:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14966
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14968
_WListPeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14969
    |jString index selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14971
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14973
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14974
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14976
    m := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14977
    m isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14978
	Transcript showCR:'JAVA: access to listModel of closed view'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14979
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14980
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14981
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14982
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14983
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14984
    "Created: / 24.1.1998 / 21:10:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14985
    "Modified: / 2.11.1998 / 17:12:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14986
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14988
_WListPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14989
    |jListPeer jFrame frame selectionInListView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14990
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14991
    jListPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14993
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14994
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14996
    selectionInListView := ScrollableView for:SelectionInListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14997
    selectionInListView action:[:index | jListPeer perform:#'handleListChanged(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14998
    selectionInListView doubleClickAction:[:index | jListPeer perform:#'handleAction(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14999
    selectionInListView model:(SelectionInList new list:(List new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15000
    selectionInListView useIndex:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15001
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15002
    self createdWindowsView:selectionInListView for:jListPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15003
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15004
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15005
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. selectionInListView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15006
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15008
    "Created: / 24.1.1998 / 19:58:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15009
    "Modified: / 9.4.1998 / 22:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15010
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15011
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15012
_WListPeer_delItems:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15013
    |jString index1 index2 selListView model list|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15014
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15015
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15017
    index1 := (nativeContext argAt:1) + 1. "/ java indices are 0-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15018
    index2 := (nativeContext argAt:2) + 1. "/ st indices are 1-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15020
    model := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15021
    model isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15022
    list := model list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15023
    list size >= index1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15024
	list removeFromIndex:index1 toIndex:(index2 min:list size).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15025
	model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15026
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15027
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15028
    "Created: / 9.4.1998 / 22:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15029
    "Modified: / 30.12.1998 / 20:00:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15030
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15032
_WListPeer_deselect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15033
    "/ void deselect (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15034
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15036
    "Created: / 12.11.1998 / 19:15:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15037
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15039
_WListPeer_getMaxWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15040
    "/ int getMaxWidth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15042
    ^ 1000 "/ a dummy value
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15044
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15045
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15046
    "Created: / 14.11.1998 / 10:44:29 / 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
_WListPeer_isSelected:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15050
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15052
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15054
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15055
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15056
	(model selectionIndex == (index + 1))  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15057
	ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15058
	    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15059
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15060
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15061
    ^ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15062
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15063
    "Created: / 24.1.1998 / 22:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15064
    "Modified: / 25.1.1998 / 01:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15065
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15067
_WListPeer_makeVisible:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15068
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15070
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15072
    lineNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15074
    selectionInListView makeLineVisible:(lineNr + 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15076
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15077
    "Created: / 20.10.1998 / 14:14:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15080
_WListPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15081
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15083
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15085
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15086
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15087
	model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15088
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15090
    "Created: / 24.1.1998 / 22:32:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15091
    "Modified: / 25.1.1998 / 01:28:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15092
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15094
_WListPeer_setMultipleSelections:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15095
    |selectionInListView onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15096
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15097
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15098
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15099
    onOff := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15101
    selectionInListView multipleSelectOk:onOff.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15103
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15104
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15106
_WListPeer_updateMaxItemWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15107
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15109
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15111
    "Created: / 26.10.1998 / 20:09:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15112
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15114
_WMenuBarPeer_addMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15115
    "/ void addMenu (java.awt.Menu)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15116
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15118
    "Created: / 12.11.1998 / 19:14:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15119
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15120
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15121
_WMenuBarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15122
    |jMenuBarPeer jMenuBar jFrame frame menuBar|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15124
    jMenuBarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15125
    jMenuBar := jMenuBarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15127
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15128
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15130
    menuBar := MenuPanel in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15131
    menuBar verticalLayout:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15132
    menuBar realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15134
    self createdWindowsView:menuBar for:jMenuBarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15136
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15137
	'WMenuBarPeer_create: ' print. frame print. ' -> ' print. menuBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15138
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15140
    "Created: / 7.1.1998 / 21:38:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15141
    "Modified: / 25.1.1998 / 13:19:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15142
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15144
_WMenuBarPeer_delMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15145
    "/ void delMenu (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15146
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15148
    "Created: / 12.11.1998 / 19:14:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15149
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15151
_WMenuItemPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15152
    |jMenuItemPeer item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15154
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15155
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15156
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15157
"/ what should be done here ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15159
    "Created: / 29.3.1998 / 17:16:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15160
    "Modified: / 29.3.1998 / 17:16:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15161
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15162
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15163
_WMenuItemPeer__setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15164
    "/ void _setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15166
    |jMenuItemPeer item label|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15167
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15168
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15169
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15170
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15171
	'JAVA [warning]: NULL menu item in setLabel' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15172
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15173
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15175
    label := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15176
    label isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15177
	label := ''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15178
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15179
	label := Java as_ST_String:label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15180
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15181
    item label:label.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15183
    "Modified: / 11.12.1998 / 16:40:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15184
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15186
_WMenuItemPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15187
    |jMenuItemPeer jMenuItem jMenuPeer menu item lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15189
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15190
    jMenuItem := jMenuItemPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15192
    jMenuPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15193
    menu := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15194
    (menu isNil or:[menu == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15195
	'JAVA: no menu to create item in' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15196
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15197
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15198
    item := menu createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15199
    item value:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15200
		jMenuItemPeer perform:#'handleAction(I)V' with:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15201
	       ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15203
    lbl := jMenuItem instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15204
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15205
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15206
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15207
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15209
    jMenuItemPeer instVarNamed:'pData' put:item.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15211
    WindowOPTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15212
	'WMenuItem_create: ' print. menu print. ' -> ' print. item printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15213
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15215
    "Created: / 7.1.1998 / 21:40:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15216
    "Modified: / 3.12.1998 / 20:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15217
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15218
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15219
_WMenuItemPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15220
    |jMenuItemPeer item state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15222
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15223
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15224
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15225
	'JAVA [warning]: NULL menu item in enable' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15226
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15227
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15228
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15229
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15230
    item enabled:(state ~~ 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15232
    "Created: / 7.1.1998 / 22:41:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15233
    "Modified: / 11.12.1998 / 16:40:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15234
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15235
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15236
_WMenuPeer_addSeparator:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15237
    "/ void addSeparator ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15238
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15240
    "Created: / 12.11.1998 / 19:13:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15241
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15243
_WMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15244
    |jMenuPeer jMenu jMenuBarPeer menuPanel menu
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15245
     lbl item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15247
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15248
    jMenu := jMenuPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15250
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15251
    menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15252
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15253
    item := menuPanel createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15254
    lbl := jMenu instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15255
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15256
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15257
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15258
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15260
    menu := MenuPanel new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15261
    item submenu:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15263
    jMenuPeer instVarNamed:'pData' put:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15265
'createMenuPeer: ' print. menuPanel print. ' -> ' print. menu printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15267
    "Created: / 7.1.1998 / 21:39:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15268
    "Modified: / 13.1.1998 / 22:11:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15269
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15271
_WMenuPeer_createSubMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15272
    "/ void createSubMenu (sun.awt.windows.WMenuPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15273
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15275
    "Created: / 12.11.1998 / 19:13:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15276
    "Modified: / 3.12.1998 / 21:41:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15277
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15279
_WMenuPeer_delItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15280
    "/ void delItem (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15281
    |jMenuPeer jMenu menuPanel itemIndex|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15283
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15284
    menuPanel := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15286
    itemIndex := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15287
    menuPanel remove:itemIndex.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15289
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15291
    "Created: / 12.11.1998 / 19:13:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15292
    "Modified: / 10.12.1998 / 21:12:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15293
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15294
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15295
_WPanelPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15296
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15297
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15298
    "Created: / 27.1.1998 / 21:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15299
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15300
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15301
_WPopupMenuPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15302
    "/ void _show (java.awt.Event)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15303
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15305
    "Created: / 12.11.1998 / 19:12:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15306
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15308
_WPopupMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15309
    "/ void createMenu (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15310
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15312
    "Created: / 12.11.1998 / 19:12:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15313
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15315
_WPrintJob_end:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15316
    "/ void end ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15317
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15319
    "Created: / 12.11.1998 / 19:11:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15320
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15322
_WScrollPanePeer__getHScrollbarHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15323
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15325
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15326
    ^ HorizontalScrollBar new preferredExtent y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15328
    "Created: / 9.4.1998 / 17:30:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15329
    "Modified: / 10.4.1998 / 14:59:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15330
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15332
_WScrollPanePeer__getVScrollbarWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15333
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15335
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15336
    ^ ScrollBar new preferredExtent x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15338
    "Created: / 9.4.1998 / 17:29:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15339
    "Modified: / 10.4.1998 / 15:00:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15340
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15342
_WScrollPanePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15343
    |jScrollPanePeer jScrollPane jFrame frame scrollPane
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15344
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15346
    jScrollPanePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15347
    jScrollPane := jScrollPanePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15349
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15350
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15352
    "/ create with a simple view ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15353
    scrollPane := ScrollableView for:JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15355
    self createdWindowsView:scrollPane for:jScrollPanePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15357
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15358
	'WScrollPanePeer_create: ' print. frame print. ' -> ' print. scrollPane printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15359
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15361
    "Created: / 9.4.1998 / 17:25:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15362
    "Modified: / 9.4.1998 / 22:06:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15363
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15365
_WScrollPanePeer_getOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15366
    "/ int getOffset (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15367
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15369
    "Created: / 12.11.1998 / 19:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15370
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15371
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15372
_WScrollPanePeer_getScrollChild:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15373
    "/ java.awt.Component getScrollChild ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15374
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15376
    "Created: / 12.11.1998 / 19:17:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15377
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15379
_WScrollPanePeer_setInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15381
    "Modified: / 9.4.1998 / 17:26:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15382
    "Created: / 9.4.1998 / 17:29:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15383
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15384
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15385
_WScrollPanePeer_setScrollPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15386
    "/ void setScrollPosition (int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15387
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15388
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15389
    "Created: / 12.11.1998 / 19:16:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15390
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15392
_WScrollPanePeer_setSpans:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15393
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15394
    "Created: / 9.4.1998 / 17:31:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15395
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15397
_WScrollbarPeer__setValues:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15398
    |scrollBar value visibleAmount min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15400
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15402
    value := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15403
    visibleAmount := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15404
    min := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15405
    max := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15407
    (min ~~ 0 or:[max ~~ 100]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15408
	scrollBar thumb start:min stop:max.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15409
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15411
    scrollBar thumbOrigin:value thumbHeight:visibleAmount.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15413
    "Created: / 13.1.1998 / 22:13:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15414
    "Modified: / 14.10.1998 / 14:53:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15415
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15417
_WScrollbarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15418
    |jScrollbarPeer jScrollbar jFrame frame scrollBar
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15419
     min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15421
    jScrollbarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15422
    jScrollbar := jScrollbarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15424
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15425
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15427
    (jScrollbar instVarNamed:'orientation') == 0 "HORIZONTAL" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15428
	scrollBar := HorizontalScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15429
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15430
	scrollBar := ScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15431
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15432
    min := jScrollbar instVarNamed:'minimum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15433
    max := jScrollbar instVarNamed:'maximum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15435
    scrollBar scrollDownAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15436
			scrollBar thumbOrigin:(scrollBar thumbOrigin + ((max-min)/10) min:max).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15437
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15438
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15439
    scrollBar scrollUpAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15440
			scrollBar thumbOrigin:(scrollBar thumbOrigin - ((max-min)/10) max:min).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15441
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15442
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15443
    scrollBar scrollAction:[:org |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15444
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:org rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15445
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15446
    self createdWindowsView:scrollBar for:jScrollbarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15448
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15449
	'WScrollbarPeer_create: ' print. frame print. ' -> ' print. scrollBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15450
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15452
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15453
    "Modified: / 14.10.1998 / 15:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15454
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15456
_WScrollbarPeer_setLineIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15457
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15459
Transcript showCR:'JavaVM: WScrollbarPeer_setLineIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15460
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15461
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15463
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15464
"/    scrollBar thumb lineIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15466
    "Created: / 25.1.1998 / 11:52:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15467
    "Modified: / 14.10.1998 / 14:53:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15468
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15469
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15470
_WScrollbarPeer_setPageIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15471
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15473
Transcript showCR:'JavaVM: WScrollbarPeer_setPageIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15475
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15476
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15477
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15478
"/    scrollBar thumb pageIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15480
    "Created: / 25.1.1998 / 11:52:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15481
    "Modified: / 14.10.1998 / 14:54:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15482
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15484
_WTextAreaPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15485
    |jTextAreaPeer jFrame frame editTextView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15487
    jTextAreaPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15489
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15490
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15492
    editTextView := HVScrollableView for:EditTextView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15494
    self createdWindowsView:editTextView for:jTextAreaPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15496
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15497
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. editTextView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15498
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15500
    "Created: / 7.1.1998 / 21:49:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15501
    "Modified: / 15.1.1998 / 12:56:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15502
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15504
_WTextAreaPeer_insertText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15505
    |textView pos string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15507
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15508
    (textView isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15509
	textView := textView scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15510
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15512
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15513
    string := Java as_ST_String:jstring.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15514
    pos := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15516
    textView insert:string at:pos.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15517
    textView cursorToCharacterPosition:pos + string size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15518
    textView makeCursorVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15519
"/ textView invalidateRepairNow:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15520
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15522
    "Created: / 7.1.1998 / 21:50:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15523
    "Modified: / 5.4.1998 / 17:37:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15524
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15526
_WTextAreaPeer_replaceText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15527
    "/ void replaceText (java.lang.String int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15528
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15530
    "Created: / 12.11.1998 / 19:11:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15531
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15533
_WTextComponentPeer_enableEditing:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15534
    |textView enabled|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15536
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15537
    enabled := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15539
    ^ textView readOnly:enabled not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15541
    "Created: / 5.1.1998 / 01:29:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15542
    "Modified: / 25.1.1998 / 16:29:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15543
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15545
_WTextComponentPeer_getSelectionEnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15546
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15547
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15548
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15550
    ^ textView characterPositionOfSelectionEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15552
    "Created: / 8.1.1998 / 17:41:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15553
    "Modified: / 15.1.1998 / 15:47:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15554
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15556
_WTextComponentPeer_getSelectionStart:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15557
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15559
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15561
    ^ textView characterPositionOfSelection - 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15563
    "Created: / 15.8.1997 / 15:45:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15564
    "Modified: / 15.1.1998 / 15:46:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15565
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15567
_WTextComponentPeer_getText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15568
    |textView string jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15570
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15572
    string := textView contents asString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15573
    jString := Java as_String:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15574
    ^ jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15576
    "Created: / 6.1.1998 / 21:05:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15577
    "Modified: / 8.1.1998 / 17:36:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15578
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15580
_WTextComponentPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15581
    |textView selStart selEnd|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15583
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15584
    selStart := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15585
    selEnd := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15587
    selStart == selEnd ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15588
	"/ clear selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15589
	textView unselect.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15590
	"/ and set caret
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15591
	textView cursorToCharacterPosition:selStart + 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15592
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15593
	"/ change selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15594
	textView selectFromCharacterPosition:selStart+1 to:selEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15595
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15597
    "Created: / 15.8.1997 / 15:45:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15598
    "Modified: / 15.1.1998 / 21:55:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15599
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15601
_WTextComponentPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15602
    |textView string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15604
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15605
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15606
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15607
    jstring notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15608
	string := Java as_ST_String:jstring
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15609
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15610
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15611
    textView contents:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15613
    "Created: / 5.1.1998 / 01:28:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15614
    "Modified: / 11.12.1998 / 12:16:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15615
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15617
_WTextFieldPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15618
    |jTextFieldPeer jFrame frame editField|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15619
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15620
    jTextFieldPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15622
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15623
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15625
    editField := EditField in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15627
    self createdWindowsView:editField for:jTextFieldPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15629
    editField crAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15630
			jTextFieldPeer perform:#handleAction.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15631
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15632
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15633
	'WTextFieldPeer_create: ' print. frame print. ' -> ' print. editField printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15634
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15635
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15636
    "Created: / 5.1.1998 / 01:27:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15637
    "Modified: / 4.11.1998 / 21:07:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15638
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15640
_WTextFieldPeer_setEchoCharacter:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15641
    |editField char|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15643
    editField := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15645
    char := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15646
    editField passwordCharacter:(Character value:char).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15648
    "Created: / 25.1.1998 / 16:28:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15649
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15651
_WToolkit_beep:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15652
    "/ void beep ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15654
    Screen current beep
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15656
    "Created: / 12.11.1998 / 19:09:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15657
    "Modified: / 11.12.1998 / 12:15:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15658
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15660
_WToolkit_eventLoop:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15661
    (JavaEventThread notNil and:[JavaEventThread isDead not]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15662
	'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15663
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15665
    JavaEventThread := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15666
    [
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15667
	[true] whileTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15668
	    AbortSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15669
		ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15670
	    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15671
		self doWindowsEventThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15672
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15673
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15674
    ] valueNowOrOnUnwindDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15675
	JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15676
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15677
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15678
    "Created: / 6.1.1998 / 21:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15679
    "Modified: / 8.1.1999 / 17:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15680
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15682
_WToolkit_getComboHeightOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15683
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15685
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15686
    "Created: / 22.10.1998 / 00:59:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15687
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15688
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15689
_WToolkit_getScreenHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15690
    ^ Screen current height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15691
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15692
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15693
    "Created: / 13.1.1998 / 09:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15694
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15695
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15696
_WToolkit_getScreenResolution:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15697
    ^ Screen current resolution x rounded
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15699
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15700
    "Created: / 17.1.1998 / 21:54:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15701
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15703
_WToolkit_getScreenWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15704
    ^ Screen current width
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15706
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15707
    "Created: / 13.1.1998 / 09:24:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15708
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15710
_WToolkit_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15712
    "Created: / 3.1.1998 / 02:30:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15713
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15715
_WToolkit_loadSystemColors:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15716
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15717
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15718
    "Modified: / 18.3.1997 / 18:43:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15719
    "Created: / 5.1.1998 / 02:19:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15720
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15722
_WToolkit_makeColorModel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15723
    "/ java.awt.image.ColorModel makeColorModel ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15724
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15725
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15726
    "Created: / 12.11.1998 / 19:08:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15727
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15729
_WToolkit_sync:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15730
    "/ void sync ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15731
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15733
    "Created: / 12.11.1998 / 19:09:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15734
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15736
_WWindowPeer__setResizable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15737
    |view onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15739
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15741
    onOff := (nativeContext argAt:1) == 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15742
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15743
	onOff ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15744
	    view minExtent:10@10.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15745
	    view maxExtent:(Screen current extent).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15746
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15747
	    view minExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15748
	    view maxExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15749
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15750
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15751
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15752
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15753
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15754
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15755
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15756
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15757
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15758
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15760
    "Created: / 5.1.1998 / 00:57:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15761
    "Modified: / 16.1.1998 / 18:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15762
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15764
_WWindowPeer__setTitle:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15765
    |view jString string|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15766
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15767
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15769
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15770
    string := Java as_ST_String:jString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15772
"/ 'JAVA: WWindowPeer_pSetTitle: ' print. string print. ' ' print. view printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15773
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15774
    view label:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15775
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15777
    "Created: / 5.1.1998 / 00:57:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15778
    "Modified: / 8.1.1998 / 17:37:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15779
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15780
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15781
_WWindowPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15782
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15783
    |jWindowPeer jWindow top window pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15785
    jWindowPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15787
    jWindow := jWindowPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15788
    window := jWindowPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15789
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15790
    (window notNil and:[window ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15791
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15792
	    'JAVA: window view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15793
	    jWindowPeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15794
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15795
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15796
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15797
"/        window := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15798
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15799
"/        JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15801
	window := JavaPopUpView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15802
	window borderWidth:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15803
	window level:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15804
	window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15805
	window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15806
	self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15807
	JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15809
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15810
"/        window := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15811
"/        window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15812
"/        window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15813
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15814
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15816
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15818
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15819
	'JAVA: WWindowPeer_create: ' print. jWindowPeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15820
	' window: ' print. window printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15821
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15823
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15824
    "Modified: / 4.12.1998 / 17:37:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15825
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15826
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15827
_WWindowPeer_getContainerElement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15828
    "/ java.awt.Component getContainerElement (java.awt.Container int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15829
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15830
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15831
    "Created: / 12.11.1998 / 19:10:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15832
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15834
_WWindowPeer_toBack:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15835
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15837
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15838
    view lower.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15840
    "Created: / 7.5.1998 / 00:23:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15841
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15843
_WWindowPeer_toFront:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15844
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15846
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15847
    view raise.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15848
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15849
    "Created: / 9.4.1998 / 22:17:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15850
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15852
_WWindowPeer_updateInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15853
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15854
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15855
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15856
    "Created: / 4.1.1998 / 18:09:04 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15857
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15858
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15859
_Win32Process_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15860
    "really create a win32 process"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15861
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15862
    |env cmd jProcess p inPipe outPipe errorPipe|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15863
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15864
    jProcess := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15865
    cmd := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15866
    cmd := Java as_ST_String:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15867
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15868
    env := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15869
    env notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15870
	self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15871
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15872
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15873
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15874
    p := Win32Process new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15875
    p command:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15876
    p environment:env.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15877
    p inStream:inPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15878
    p outStream:outPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15879
    p errorStream:errorPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15880
    p directory:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15881
    p startProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15882
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15884
    jProcess instVarNamed:'handle' put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15885
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15886
    "Created: / 10.11.1998 / 19:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15887
    "Modified: / 10.11.1998 / 21:34:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15888
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15889
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15890
_X11FontMetrics_getMFCharSegmentWidth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15891
    "get multi-font string-segment width.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15892
     Not yet supported - use standard strings width"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15893
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15894
    |jMetrics jFont jFontDescr stFont w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15895
     bool1 cp offs lenght bp int1|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15896
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15897
    jMetrics := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15898
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15899
    jFontDescr := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15900
    cp := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15901
    lenght := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15902
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15903
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15904
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15905
        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15906
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15908
    stFont device isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15909
        stFont := stFont on:Display.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15910
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15911
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15912
    w := stFont widthOf:cp from:1 to:lenght.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15913
    ^ w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15914
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15915
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15916
_X11FontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15917
    ^ self _WFontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15918
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15919
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15920
_X11GraphicsDevice_getConfigType:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15921
    "/ new with jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15922
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15923
    |configNr cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15924
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15925
    "/ for now, only one config.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15926
    configNr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15927
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15928
    cls := Java classNamed:'java.awt.GraphicsDevice'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15929
    ^ cls instVarNamed:'TYPE_RASTER_SCREEN'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15930
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15931
    "Created: / 28.1.1998 / 22:19:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15932
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15934
_X11GraphicsDevice_getNumConfigs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15935
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15936
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15937
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15939
    "Created: / 28.1.1998 / 22:13:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15940
    "Modified: / 28.1.1998 / 22:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15941
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15943
_X11GraphicsEnvironment_getNumScreens:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15944
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15945
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15946
    "/ could return the actual number of screens ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15947
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15948
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15949
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15950
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15951
    "Modified: / 28.1.1998 / 22:12:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15952
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15953
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15954
_X11GraphicsEnvironment_initDisplay:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15955
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15957
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15958
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15960
_X11Graphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15961
    ^ self _WGraphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15962
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15963
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15964
_X11Graphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15965
    ^ self _WGraphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15966
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15967
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15968
_X11Graphics_disposeImpl:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15969
    ^ self _WGraphics_dispose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15970
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15971
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15972
_X11Graphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15973
    ^ self _WGraphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15974
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15975
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15976
_X11Graphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15977
    ^ self _WGraphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15978
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15979
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15980
_X11Graphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15981
    ^ self _WGraphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15982
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15984
_X11Graphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15985
    ^ self _WGraphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15986
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15987
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15988
_X11Graphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15989
    ^ self _WGraphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15990
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15992
_X11Graphics_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15993
    ^ self _WGraphics_pSetForeground:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15994
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15995
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 15996
!JavaVM class methodsFor:'native - stx.libjava.groovy'!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 15997
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 15998
_stx_libjava_groovy_GroovyClassLoader_SystemClassCollector_getDefiningClassLoader: nativeContext
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 15999
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16000
    <javanative: 'stx/libjava/groovy/GroovyClassLoader$SystemClassCollector' name: 'getDefiningClassLoader()Lstx/libjava/groovy/GroovyClassLoader;'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16001
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16002
    ^ SystemClassLoader
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16003
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16004
    "Modified: / 20-02-2012 / 22:30:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16005
! !
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16006
1090
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16007
!JavaVM class methodsFor:'native - stx.libjava.tests'!
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16008
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16009
_stx_libjava_tests_MonitorTests_abort: nativeContext
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16010
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16011
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16012
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16013
    AbortOperationRequest raiseRequest.
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16014
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16015
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16016
! !
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16017
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16018
!JavaVM class methodsFor:'native - sun.font'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16019
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16020
_sun_font_FontManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16021
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16022
    <javanative: 'sun/font/FontManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16023
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16024
    "Modified: / 09-02-2012 / 22:56:51 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16025
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16026
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16027
_sun_font_StrikeCache_getGlyphCacheDescription: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16028
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16029
    <javanative: 'sun/font/StrikeCache' name: 'getGlyphCacheDescription([J)V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16030
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16031
    "Modified: / 09-02-2012 / 22:57:08 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16032
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16033
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16034
!JavaVM class methodsFor:'native - sun.io'!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16035
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16036
_sun_io_Win32ErrorMode_setErrorMode: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16037
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16038
    <javanative: 'sun/io/Win32ErrorMode' name: 'setErrorMode(J)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16039
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16040
    "FIXME: Ignored for now"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16041
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16042
    ^0
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16043
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16044
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16045
!JavaVM class methodsFor:'native - sun.java2d'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16046
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16047
_sun_java2d_Disposer_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16048
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16049
    <javanative: 'sun/java2d/Disposer' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16050
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16051
    "Modified: / 09-02-2012 / 22:54:59 / mh <hlopik@gmail.com>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16052
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16053
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16054
!JavaVM class methodsFor:'native - sun.java2d.cmm.lcms'!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16055
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16056
_sun_java2d_cmm_lcms_LCMS_getTagData: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16057
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16058
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagData(JI[B)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16059
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16060
    | profileId tag data |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16061
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16062
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16063
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16064
    data := nativeContext argAt: 4.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16065
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16066
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16067
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16068
    tag = 1751474532 ifTrue:[
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16069
        data replaceBytesFrom:1 
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16070
                with:#[0  3  146  96  108  99  109  115  4  0  0  0  115  112  97  99  51  67  76  82  88  89  90  32  7  216  0  4  0  10  0  10  0  24  0  22  97  99  115  112  65  80  80  76  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  1  0  0  246  214  0  1  0  0  0  0  211  45  108  99  109  115  240  231  92  85  210  30  77  140  137  67  22  250  239  246  146  191  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16071
                startingAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16072
        ^self.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16073
    ].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16074
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16075
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16076
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16077
    "Modified: / 18-04-2012 / 08:29:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16078
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16079
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16080
_sun_java2d_cmm_lcms_LCMS_getTagSize: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16081
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16082
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagSize(JI)I'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16083
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16084
    | profileId tag |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16085
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16086
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16087
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16088
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16089
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16090
    "Magic numbers based on trace of real Java code"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16091
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16092
    tag = 1751474532 ifTrue:[ ^ 128 ].
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16093
    
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16094
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16095
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16096
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16097
    ^128 "Some magic default"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16098
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16099
    "Modified: / 18-04-2012 / 08:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16100
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16101
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16102
_sun_java2d_cmm_lcms_LCMS_initLCMS: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16103
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16104
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'initLCMS(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16105
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16106
    "Nothing to do"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16107
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16108
    "Modified: / 09-12-2011 / 18:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16109
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16110
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16111
_sun_java2d_cmm_lcms_LCMS_loadProfile: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16112
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16113
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'loadProfile([B)J'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16114
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16115
    "FAKE, return some magic"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16116
    ^12344321
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16117
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16118
    "Modified: / 09-12-2011 / 18:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16119
! !
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16120
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16121
!JavaVM class methodsFor:'native - sun.java2d.pipe'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16122
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16123
_sun_java2d_pipe_Region_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16124
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16125
    <javanative: 'sun/java2d/pipe/Region' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16126
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16127
    "Modified: / 09-02-2012 / 22:55:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16128
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16129
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16130
!JavaVM class methodsFor:'native - sun.management'!
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16131
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16132
_sun_management_MemoryImpl_getMemoryManagers0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16133
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16134
    <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
 16135
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16136
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16137
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16138
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16139
    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
 16140
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16141
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16142
    "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
 16143
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16144
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16145
_sun_management_MemoryImpl_getMemoryPools0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16146
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16147
    <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
 16148
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16149
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16150
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16151
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16152
    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
 16153
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16154
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16155
    "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
 16156
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16157
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16158
_sun_management_VMManagementImpl_getStartupTime: nativeContext 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16159
    <javanative: 'sun/management/VMManagementImpl' name: 'getStartupTime()J'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16160
    ^ StartupTime.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16161
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16162
    "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
 16163
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16164
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16165
_sun_management_VMManagementImpl_getVersion0: nativeContext 
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16166
    <javanative: 'sun/management/VMManagementImpl' name: 'getVersion0'>
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16167
    ^ Java as_String: '1.2'.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16168
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16169
    "Modified: / 03-11-2011 / 18:42:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16170
!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16171
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16172
_sun_management_VMManagementImpl_initOptionalSupportFields: nativeContext 
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16173
    <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
 16174
    | cls |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16175
    cls := nativeContext receiver.
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16176
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16177
    cls instVarNamed: #compTimeMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16178
    cls instVarNamed: #threadContentionMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16179
    cls instVarNamed: #currentThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16180
    cls instVarNamed: #otherThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16181
    cls instVarNamed: #bootClassPathSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16182
    cls instVarNamed: #synchronizerUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16183
    cls instVarNamed: #objectMonitorUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16184
    ^ self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16185
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16186
    "Modified: / 13-12-2011 / 14:35:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16187
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16188
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16189
_sun_management_VMManagementImpl_isThreadCpuTimeEnabled: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16190
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16191
    <javanative: 'sun/management/VMManagementImpl' name: 'isThreadCpuTimeEnabled()Z'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16192
1083
vranyj1
parents: 1081
diff changeset
 16193
    ^ 0 "/false should be safe, we'll see...
vranyj1
parents: 1081
diff changeset
 16194
vranyj1
parents: 1081
diff changeset
 16195
    "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
 16196
! !
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16197
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16198
!JavaVM class methodsFor:'native - sun.misc'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16199
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16200
_sun_misc_GC_maxObjectInspectionAge: nativeContext
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16201
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16202
    <javanative: 'sun/misc/GC' name: 'maxObjectInspectionAge()J'>
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16203
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16204
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16205
    /**
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16206
     * Returns the maximum <em>object-inspection age</em>, which is the number
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16207
     * of real-time milliseconds that have elapsed since the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16208
     * least-recently-inspected heap object was last inspected by the garbage
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16209
     * collector.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16210
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16211
     * <p> For simple stop-the-world collectors this value is just the time
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16212
     * since the most recent collection.  For generational collectors it is the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16213
     * time since the oldest generation was most recently collected.  Other
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16214
     * collectors are free to return a pessimistic estimate of the elapsed
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16215
     * time, or simply the time since the last full collection was performed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16216
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16217
     * <p> Note that in the presence of reference objects, a given object that
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16218
     * is no longer strongly reachable may have to be inspected multiple times
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16219
     * before it can be reclaimed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16220
     */
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16221
    public static native long maxObjectInspectionAge();
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16222
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16223
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16224
    ^Random nextIntegerBetween: 0 and: 3600. "Just return some number"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16225
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16226
    "Modified: / 02-12-2011 / 21:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16227
!
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16228
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16229
_sun_misc_Signal_findSignal: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16230
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16231
    <javanative: 'sun/misc/Signal' name: 'findSignal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16233
        | input signame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16234
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16235
    input := Java as_ST_String: (aJavaContext argAt: 1).
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16236
    OperatingSystem isUNIXlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16237
        signame := 'SIG', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16238
        ^UnixOperatingSystem signalNamed: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16239
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16240
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16241
        signame := 'sig', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16242
        ^Win32OperatingSystem perform: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16243
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16244
    self error: 'Unsupported OS'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16245
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16246
    "Created: / 11-12-2010 / 15:22:07 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16247
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16249
_sun_misc_Signal_handle0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16251
    <javanative: 'sun/misc/Signal' name: 'handle0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16253
        self breakPoint: #libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16254
    ^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16256
    "Created: / 11-12-2010 / 16:33:38 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16257
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16258
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16259
_sun_misc_Unsafe_addressSize: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16260
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16261
    <javanative: 'sun/misc/Unsafe' name: 'addressSize()I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16262
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16263
    ^ExternalAddress pointerSize
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16264
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16265
    "Modified: / 10-07-2012 / 01:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16266
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16267
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16268
_sun_misc_Unsafe_allocateInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16269
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16270
    <javanative: 'sun/misc/Unsafe' name: 'allocateInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16271
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16272
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16273
    /** Allocate an instance but do not run any constructor.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16274
        Initializes the class if it has not yet been. */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16275
    public native Object allocateInstance(Class cls)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16276
        throws InstantiationException;
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16277
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16278
    | cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16279
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16280
    cls classInit.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16281
    ^cls newCleared
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16282
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16283
    "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
 16284
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16285
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16286
_sun_misc_Unsafe_allocateMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16288
    <javanative: 'sun/misc/Unsafe' name: 'allocateMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16290
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16291
    | size |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16292
    size := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16293
    ^SimulatedNativeMemory malloc: size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16295
    "Created: / 07-12-2010 / 21:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16296
    "Modified: / 07-12-2010 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16297
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16298
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16299
_sun_misc_Unsafe_arrayBaseOffset: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16300
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16301
    <javanative: 'sun/misc/Unsafe' name: 'arrayBaseOffset'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16302
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16303
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16304
    * Report the offset of the first element in the storage allocation of a
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16305
    * given array class.  If {@link #arrayIndexScale} returns a non-zero value
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16306
    * for the same class, you may use that scale factor, together with this
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16307
    * base offset, to form new offsets to access elements of arrays of the
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16308
    * given class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16309
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16310
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16311
    * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16312
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16313
    public native int arrayBaseOffset(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16314
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16315
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16316
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16317
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16318
    "Modified (comment): / 10-08-2011 / 01:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16319
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16320
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16321
_sun_misc_Unsafe_arrayIndexScale: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16322
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16323
    <javanative: 'sun/misc/Unsafe' name: 'arrayIndexScale'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16324
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16325
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16326
      /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16327
      * Report the scale factor for addressing elements in the storage
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16328
      * allocation of a given array class.  However, arrays of 'narrow' types
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16329
      * will generally not work properly with accessors like {@link
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16330
      * #getByte(Object, int)}, so the scale factor for such classes is reported
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16331
      * as zero.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16332
      *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16333
      * @see #arrayBaseOffset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16334
      * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16335
      * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16336
      */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16337
    public native int arrayIndexScale(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16338
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16339
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16340
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16341
    "Modified: / 10-08-2011 / 01:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16342
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16343
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16344
_sun_misc_Unsafe_compareAndSwapInt: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16346
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16347
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16348
    ^self _sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16349
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16350
    "Created: / 22-11-2010 / 18:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16351
    "Modified: / 07-08-2011 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16352
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16353
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16354
_sun_misc_Unsafe_compareAndSwapLong: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16355
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16356
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapLong'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16357
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16358
        "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16359
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16360
     * Atomically update Java variable to <tt>x</tt> if it is currently
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16361
     * holding <tt>expected</tt>.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16362
     * @return <tt>true</tt> if successful
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16363
     */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16364
    public final native boolean compareAndSwapInt(Object o, long offset,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16365
                                                  long expected,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16366
                                                  long new);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16367
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16368
    | o offset expected real new ok |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16369
    o := aJavaContext argAt:1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16370
    offset := aJavaContext argAt:2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16371
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16372
    expected := aJavaContext argAt:4.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16373
    new := aJavaContext argAt:6.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16374
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16375
    OperatingSystem blockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16376
    real := o instVarAt: offset.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16377
    (real == expected)
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16378
            ifTrue:[o instVarAt: offset put: new. ok := 1]
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16379
            ifFalse:[ok := 1].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16380
    OperatingSystem unblockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16381
    ^ok
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16382
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16383
    "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
 16384
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16385
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16386
_sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16387
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16388
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16389
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16390
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16391
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16392
     * Atomically update Java variable to <tt>x</tt> if it is currently
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16393
     * holding <tt>expected</tt>.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16394
     * @return <tt>true</tt> if successful
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16395
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16396
    public final native boolean compareAndSwapInt(Object o, long offset,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16397
                                                  int expected,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16398
                                                  int new);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16399
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16400
    | o offset expected real new ok |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16401
    o := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16402
    offset := aJavaContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16403
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16404
    expected := aJavaContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16405
    new := aJavaContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16407
    OperatingSystem blockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16408
    real := o instVarAt: offset.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16409
    (real == expected)
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16410
            ifTrue:[o instVarAt: offset put: new. ok := 1]
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
 16411
            ifFalse:[ok := 0].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16412
    OperatingSystem unblockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16413
    ^ok
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16414
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
 16415
    "Modified: / 06-07-2012 / 09:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16416
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16417
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16418
_sun_misc_Unsafe_copyMemory: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16419
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16420
    /**
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16421
     * Sets all bytes in a given block of memory to a copy of another
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16422
     * block.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16423
     */
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16424
    public native void copyMemory(long srcAddress, long destAddress,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16425
                                  long bytes);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16426
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16427
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16428
    <javanative: 'sun/misc/Unsafe' name: 'copyMemory(JJJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16429
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16430
    | srcAddress dstAddress bytes |
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16431
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16432
    srcAddress := nativeContext argAt:1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16433
    dstAddress := nativeContext argAt:3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16434
    bytes      := nativeContext argAt:5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16435
    SimulatedNativeMemory bcopy: srcAddress to: dstAddress length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16436
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16437
    "Modified (format): / 11-07-2012 / 10:25:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16438
!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16439
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16440
_sun_misc_Unsafe_defineClass: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16441
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16442
    <javanative: 'sun/misc/Unsafe' name: 'defineClass'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16443
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16444
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16445
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16446
     * Tell the VM to define a class, without security checks.  By default, the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16447
     * class loader and protection domain come from the caller's class.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16448
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16449
    public native Class defineClass(String name, byte[] b, int off, int len,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16450
                                    ClassLoader loader,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16451
                                    ProtectionDomain protectionDomain);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16452
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16453
    | name b off len loader protectionDomain bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16454
    name := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16455
    b := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16456
    off := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16457
    len := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16458
    loader := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16459
    protectionDomain := nativeContext argAt: 6.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16460
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16461
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16462
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16463
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16464
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16465
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16466
    cls classLoader: loader.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16467
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16468
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16469
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16470
    "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
 16471
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16472
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16473
_sun_misc_Unsafe_ensureClassInitialized: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16475
    <javanative: 'sun/misc/Unsafe' name: 'ensureClassInitialized'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16476
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16477
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16478
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16479
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16480
     "Sometimes there is a nil. I don't know why, so I did quickfix"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16481
    self breakPoint:#libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16482
    class ifNotNil:[class classInit.].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16483
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16484
    "Created: / 11-12-2010 / 15:01:36 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16485
    "Modified: / 25-12-2010 / 09:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16486
    "Modified: / 08-01-2011 / 15:11:21 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16487
    "Modified: / 28-01-2011 / 15:19:31 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16488
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16489
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16490
_sun_misc_Unsafe_freeMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16491
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16492
    <javanative: 'sun/misc/Unsafe' name: 'freeMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16493
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16494
    | address  |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16495
    address := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16496
    ^SimulatedNativeMemory free: address
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16497
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16498
    "Created: / 09-12-2010 / 17:56:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16499
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16500
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16501
_sun_misc_Unsafe_getBoolean: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16502
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16503
    <javanative: 'sun/misc/Unsafe' name: 'getBoolean(Ljava/lang/Object;J)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16504
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16505
    | o offset |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16506
    o := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16507
    offset := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16508
    ^o instVarAt: offset
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16509
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16510
    "Modified: / 19-11-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16511
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16512
1151
vranyj1
parents: 1150
diff changeset
 16513
_sun_misc_Unsafe_getByte: nativeContext
vranyj1
parents: 1150
diff changeset
 16514
vranyj1
parents: 1150
diff changeset
 16515
    <javanative: 'sun/misc/Unsafe' name: 'getByte(Ljava/lang/ObjectJ)B'>
vranyj1
parents: 1150
diff changeset
 16516
    <javanative: 'sun/misc/Unsafe' name: 'getByte(J)B'>
vranyj1
parents: 1150
diff changeset
 16517
vranyj1
parents: 1150
diff changeset
 16518
    | object offset address |
vranyj1
parents: 1150
diff changeset
 16519
    nativeContext numArgs == 3 ifTrue:[
vranyj1
parents: 1150
diff changeset
 16520
        "getByte(Ljava/lang/Object;J)V"
vranyj1
parents: 1150
diff changeset
 16521
        object := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16522
        offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16523
        ^object instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16524
    ].
vranyj1
parents: 1150
diff changeset
 16525
    nativeContext numArgs == 2 ifTrue:[
vranyj1
parents: 1150
diff changeset
 16526
        "getByte(J)V"
vranyj1
parents: 1150
diff changeset
 16527
        address := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16528
        ^SimulatedNativeMemory byteAt: address
vranyj1
parents: 1150
diff changeset
 16529
    ].
vranyj1
parents: 1150
diff changeset
 16530
vranyj1
parents: 1150
diff changeset
 16531
    self internalError:'Unssuported getByte() variant'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16533
    "Created: / 09-12-2010 / 17:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16534
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16535
1151
vranyj1
parents: 1150
diff changeset
 16536
_sun_misc_Unsafe_getChar: nativeContext
vranyj1
parents: 1150
diff changeset
 16537
vranyj1
parents: 1150
diff changeset
 16538
    <javanative: 'sun/misc/Unsafe' name: 'getChar(Ljava/lang/Object;J)C'>
vranyj1
parents: 1150
diff changeset
 16539
vranyj1
parents: 1150
diff changeset
 16540
    | o offset |
vranyj1
parents: 1150
diff changeset
 16541
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16542
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16543
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16544
vranyj1
parents: 1150
diff changeset
 16545
    "Modified: / 22-11-2011 / 14:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16546
!
vranyj1
parents: 1150
diff changeset
 16547
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16548
_sun_misc_Unsafe_getDouble: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16549
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16550
    <javanative: 'sun/misc/Unsafe' name: 'getDouble(Ljava/lang/Object;J)D'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16551
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16552
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16553
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16554
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16555
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16556
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16557
    "Modified: / 10-05-2012 / 17:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16558
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16559
1151
vranyj1
parents: 1150
diff changeset
 16560
_sun_misc_Unsafe_getFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 16561
vranyj1
parents: 1150
diff changeset
 16562
    <javanative: 'sun/misc/Unsafe' name: 'getFloat(Ljava/lang/Object;J)F'>
vranyj1
parents: 1150
diff changeset
 16563
vranyj1
parents: 1150
diff changeset
 16564
    | o offset |
vranyj1
parents: 1150
diff changeset
 16565
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16566
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16567
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16568
vranyj1
parents: 1150
diff changeset
 16569
    "Modified: / 22-11-2011 / 14:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16570
!
vranyj1
parents: 1150
diff changeset
 16571
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16572
_sun_misc_Unsafe_getFloatVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16573
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16574
    <javanative: 'sun/misc/Unsafe' name: 'getFloatVolatile(Ljava/lang/Object;J)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16575
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16576
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16577
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16578
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16579
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16580
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16581
    "Modified: / 10-05-2012 / 17:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16582
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16583
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16584
_sun_misc_Unsafe_getInt: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16585
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16586
    <javanative: 'sun/misc/Unsafe' name: 'getInt'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16587
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16588
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16589
    * Fetches a integer value from a given Java variable.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16590
    */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16591
    public native int getInt(Object o, long offset);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16592
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16593
    | o offset |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16594
    o := nativeContext argAt: 1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16595
    offset := nativeContext argAt: 2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16596
    ^o instVarAt: offset
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16597
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16598
    "Modified: / 18-10-2011 / 20:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16599
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16600
1433
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16601
_sun_misc_Unsafe_getIntVolatile: nativeContext
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16602
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16603
    <javanative: 'sun/misc/Unsafe' name: 'getIntVolatile(Ljava/lang/Object;J)I'>
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16604
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16605
    | o offset |
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16606
    o := nativeContext argAt: 1.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16607
    offset := nativeContext argAt: 2.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16608
    ^o instVarAt: offset
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16609
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16610
    "Modified: / 28-03-2012 / 15:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16611
!
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16612
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16613
_sun_misc_Unsafe_getLongVolatile: nativeContext
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16614
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16615
    <javanative: 'sun/misc/Unsafe' name: 'getLongVolatile(Ljava/lang/Object;J)J'>
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16616
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16617
    | o offset |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16618
    o := nativeContext argAt: 1.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16619
    offset := nativeContext argAt: 2.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16620
    ^o instVarAt: offset
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16621
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16622
    "Modified: / 31-08-2011 / 23:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16623
!
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16624
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16625
_sun_misc_Unsafe_getObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16626
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16627
    <javanative: 'sun/misc/Unsafe' name: 'getObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16628
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16629
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16630
    * Fetches a reference value from a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16631
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16632
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16633
    public native Object getObject(Object o, long offset);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16634
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16635
    | o offset |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16636
    o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16637
    offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16638
    ^o instVarAt: offset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16639
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16640
    "Modified: / 10-08-2011 / 01:40:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16641
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16642
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16643
_sun_misc_Unsafe_getObjectVolatile: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16644
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16645
    <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
 16646
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16647
    /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16648
    * Fetches a reference value from a given Java variable, with volatile
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16649
    * load semantics. Otherwise identical to {@link #getObject(Object, long)}
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16650
    */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16651
    public native Object getObjectVolatile(Object o, long offset);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16652
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16653
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16654
    | o offset |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16655
    o := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16656
    offset := nativeContext argAt: 2.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16657
    ^o instVarAt: offset
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16658
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16659
    "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
 16660
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16661
1151
vranyj1
parents: 1150
diff changeset
 16662
_sun_misc_Unsafe_getShort: nativeContext
vranyj1
parents: 1150
diff changeset
 16663
vranyj1
parents: 1150
diff changeset
 16664
    <javanative: 'sun/misc/Unsafe' name: 'getShort(Ljava/lang/Object;J)S'>
vranyj1
parents: 1150
diff changeset
 16665
vranyj1
parents: 1150
diff changeset
 16666
    | o offset |
vranyj1
parents: 1150
diff changeset
 16667
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16668
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16669
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16670
vranyj1
parents: 1150
diff changeset
 16671
    "Modified: / 22-11-2011 / 14:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16672
!
vranyj1
parents: 1150
diff changeset
 16673
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16674
_sun_misc_Unsafe_getShortVolatile: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16675
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16676
    <javanative: 'sun/misc/Unsafe' name: 'getShortVolatile(Ljava/lang/Object;J)S'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16677
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16678
    | o offset |
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16679
    o := nativeContext argAt: 1.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16680
    offset := nativeContext argAt: 2.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16681
    ^o instVarAt: offset
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16682
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16683
    "Modified: / 29-06-2012 / 19:05:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16684
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16685
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16686
_sun_misc_Unsafe_objectFieldOffset: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16687
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16688
    <javanative: 'sun/misc/Unsafe' name: 'objectFieldOffset'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16689
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16690
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16691
    | javaFieldObject |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16692
    javaFieldObject := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16693
    ^javaFieldObject instVarNamed: #slot
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16694
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16695
    "Created: / 22-11-2010 / 17:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16696
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16697
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 16698
_sun_misc_Unsafe_pageSize: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 16699
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 16700
    <javanative: 'sun/misc/Unsafe' name: 'pageSize'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 16701
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16702
    ^ 4096"4K is the page size on x86, I think... "
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16703
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16704
    "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
 16705
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 16706
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16707
_sun_misc_Unsafe_park: nativeContext
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16708
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16709
    <javanative: 'sun/misc/Unsafe' name: 'park(ZJ)V'>
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16710
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16711
    /**
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16712
     * Block current thread, returning when a balancing
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16713
     * <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
 16714
     * 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
 16715
     * 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
 16716
     * 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
 16717
     * 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
 16718
     * '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
 16719
     * 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
 16720
     * elsewhere.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16721
     */
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16722
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16723
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16724
    | absolute millis tout process sema |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16725
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16726
    self breakPoint: #jv info: 'Unifinished, validate!!'.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16727
    self breakPoint: #mh info: 'Unifinished, validate!!'.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16728
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16729
    absolute := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16730
    millis := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16731
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16732
    millis ~~ 0 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16733
        absolute == 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16734
            tout := millis - OperatingSystem getOSTime.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16735
            tout < 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16736
                tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16737
            ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16738
        ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16739
            tout := millis.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16740
        ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16741
    ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16742
        tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16743
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16744
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16745
    ParkUnparkSemaphores isNil ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16746
        ParkUnparkSemaphores := Dictionary new.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16747
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16748
    process := Processor activeProcess.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16749
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16750
    [ sema waitWithTimeoutMs: tout ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16751
        ensure:[ ParkUnparkSemaphores removeKey: process ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16752
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16753
    "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
 16754
!
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16755
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16756
_sun_misc_Unsafe_putBoolean: nativeContext
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16757
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16758
    <javanative: 'sun/misc/Unsafe' name: 'putBoolean(Ljava/lang/Object;JZ)V'>
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16759
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16760
    "Like putInt:, see _sun_misc_Unsafe_putInt:"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16761
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16762
    | o offset x |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16763
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16764
    o := nativeContext argAt: 1.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16765
    offset := nativeContext argAt: 2.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16766
    x := nativeContext argAt: 4.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16767
    ^o instVarAt: offset put: x.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16768
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16769
    "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
 16770
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 16771
1151
vranyj1
parents: 1150
diff changeset
 16772
_sun_misc_Unsafe_putByte: nativeContext
vranyj1
parents: 1150
diff changeset
 16773
vranyj1
parents: 1150
diff changeset
 16774
    <javanative: 'sun/misc/Unsafe' name: 'putByte(Ljava/lang/Object;JB)V'>
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16775
    <javanative: 'sun/misc/Unsafe' name: 'putByte(JB)V'>
1151
vranyj1
parents: 1150
diff changeset
 16776
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16777
    nativeContext selector == #'putByte(JB)V' ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16778
        | address value |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16779
        address := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16780
        value := nativeContext argAt: 3.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16781
        SimulatedNativeMemory byteAt: address put: (value bitAnd: 16rFF).
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16782
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16783
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16784
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16785
    nativeContext = #'putByte(Ljava/lang/Object;JB)V' ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16786
        | o offset x |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16787
        o := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16788
        offset := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16789
        x := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16790
        ^o instVarAt: offset put: x.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16791
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16792
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16793
    self shouldNotImplement
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16794
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16795
    "Modified: / 11-07-2012 / 10:13:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 16796
!
vranyj1
parents: 1150
diff changeset
 16797
vranyj1
parents: 1150
diff changeset
 16798
_sun_misc_Unsafe_putChar: nativeContext
vranyj1
parents: 1150
diff changeset
 16799
vranyj1
parents: 1150
diff changeset
 16800
    <javanative: 'sun/misc/Unsafe' name: 'putChar(Ljava/lang/Object;JC)V'>
vranyj1
parents: 1150
diff changeset
 16801
vranyj1
parents: 1150
diff changeset
 16802
    | o offset x |
vranyj1
parents: 1150
diff changeset
 16803
vranyj1
parents: 1150
diff changeset
 16804
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16805
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16806
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 16807
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 16808
vranyj1
parents: 1150
diff changeset
 16809
    "Modified: / 22-11-2011 / 14:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16810
!
vranyj1
parents: 1150
diff changeset
 16811
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16812
_sun_misc_Unsafe_putDouble: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16813
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16814
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16815
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16816
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16817
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16818
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16819
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16820
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16821
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16822
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16823
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16824
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16825
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16826
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16827
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16828
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16829
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16830
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16831
        SimulatedNativeMemory doubleAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16832
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16833
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16834
    self internalError:'Unknown variant of putDouble() native!!'
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16835
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16836
    "Modified: / 30-08-2011 / 15:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16837
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16838
1151
vranyj1
parents: 1150
diff changeset
 16839
_sun_misc_Unsafe_putFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 16840
vranyj1
parents: 1150
diff changeset
 16841
    <javanative: 'sun/misc/Unsafe' name: 'putFloat(Ljava/lang/Object;JF)V'>
vranyj1
parents: 1150
diff changeset
 16842
vranyj1
parents: 1150
diff changeset
 16843
    | o offset x |
vranyj1
parents: 1150
diff changeset
 16844
vranyj1
parents: 1150
diff changeset
 16845
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16846
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16847
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 16848
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 16849
vranyj1
parents: 1150
diff changeset
 16850
    "Modified: / 22-11-2011 / 14:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16851
!
vranyj1
parents: 1150
diff changeset
 16852
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16853
_sun_misc_Unsafe_putInt: nativeContext
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16854
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 16855
    <javanative: 'sun/misc/Unsafe' name: 'putInt'>
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16856
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16857
    /**
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16858
     * Stores a value into a given Java variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16859
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16860
     * The first two parameters are interpreted exactly as with
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16861
     * {@link #getInt(Object, long)} to refer to a specific
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16862
     * Java variable (field or array element).  The given value
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16863
     * is stored into that variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16864
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16865
     * The variable must be of the same type as the method
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16866
     * parameter <code>x</code>.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16867
     *
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16868
     * @param o Java heap object in which the variable resides, if any, else
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16869
     *        null
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16870
     * @param offset indication of where the variable resides in a Java heap
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16871
     *        object, if any, else a memory address locating the variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16872
     *        statically
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16873
     * @param x the value to store into the indicated Java variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16874
     * @throws RuntimeException No defined exceptions are thrown, not even
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16875
     *         {@link NullPointerException}
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16876
     */
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16877
    public native void putInt(Object o, long offset, int x);
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16878
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16879
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16880
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16881
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16882
    o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16883
    offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16884
    x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16885
    ^o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16886
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16887
    "Modified: / 30-08-2011 / 15:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16888
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16889
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16890
_sun_misc_Unsafe_putLong: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16891
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16892
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16893
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16894
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16895
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16896
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16897
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16898
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16899
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16900
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16901
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16902
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16903
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16904
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16905
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16906
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16907
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16908
        x := nativeContext argAt: 3.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 16909
        SimulatedNativeMemory sint64At: o put: x.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16910
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16911
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 16912
    self internalError:'Unknown variant of putLong() native!!'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16914
    "Created: / 07-12-2010 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 16915
    "Modified: / 16-07-2012 / 16:03:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16916
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16917
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16918
_sun_misc_Unsafe_putObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16919
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16920
    <javanative: 'sun/misc/Unsafe' name: 'putObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16921
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16922
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16923
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16924
     * Stores a reference value into a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16925
     * <p>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16926
     * Unless the reference <code>x</code> being stored is either null
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16927
     * or matches the field type, the results are undefined.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16928
     * If the reference <code>o</code> is non-null, car marks or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16929
     * other store barriers for that object (if the VM requires them)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16930
     * are updated.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16931
     * @see #putInt(Object, int, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16932
     */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16933
     public native void putObject(Object o, long offset, Object x);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16934
     "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16935
     | o offset x |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16936
     o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16937
     offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16938
     x := nativeContext argAt: 4.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16939
     ^o instVarAt: offset put: x.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16940
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16941
    "Modified: / 10-08-2011 / 01:40:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16942
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16943
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16944
_sun_misc_Unsafe_putObjectVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16945
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16946
    <javanative: 'sun/misc/Unsafe' name: 'putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16947
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16948
    | o offset x |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16949
    o := nativeContext argAt: 1.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16950
    offset := nativeContext argAt: 2.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16951
    x := nativeContext argAt: 4.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16952
    ^o instVarAt: offset put: x.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16953
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16954
    "Modified: / 04-12-2011 / 20:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16955
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16956
1151
vranyj1
parents: 1150
diff changeset
 16957
_sun_misc_Unsafe_putShort: nativeContext
vranyj1
parents: 1150
diff changeset
 16958
vranyj1
parents: 1150
diff changeset
 16959
    <javanative: 'sun/misc/Unsafe' name: 'putShort(Ljava/lang/Object;JS)V'>
vranyj1
parents: 1150
diff changeset
 16960
vranyj1
parents: 1150
diff changeset
 16961
    | o offset x |
vranyj1
parents: 1150
diff changeset
 16962
vranyj1
parents: 1150
diff changeset
 16963
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16964
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16965
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 16966
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 16967
vranyj1
parents: 1150
diff changeset
 16968
    "Modified: / 22-11-2011 / 14:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16969
!
vranyj1
parents: 1150
diff changeset
 16970
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16971
_sun_misc_Unsafe_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16972
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16973
    <javanative: 'sun/misc/Unsafe' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16974
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16975
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16976
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16977
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16978
    "Created: / 25-10-2010 / 16:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16979
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16980
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16981
_sun_misc_Unsafe_setMemory: nativeContext
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16982
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16983
    <javanative: 'sun/misc/Unsafe' name: 'setMemory(JJB)V'>
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16984
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16985
    | address bytes value|
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16986
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 16987
    address := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 16988
    bytes := nativeContext argAt: 3.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 16989
    value := nativeContext argAt: 5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16990
    SimulatedNativeMemory memset: address value: value length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16991
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16992
    "Modified (format): / 11-07-2012 / 10:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16993
!
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 16994
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16995
_sun_misc_Unsafe_staticFieldBase: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16996
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16997
    <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
 16998
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16999
      /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17000
      * 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
 17001
      * #staticFieldOffset}.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17002
      * <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
 17003
      * given class can be accessed via methods like {@link #getInt(Object,
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17004
      * 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
 17005
      * 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
 17006
      * 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
 17007
      * this class.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17008
      */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17009
      public native Object staticFieldBase(Field f);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17010
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17011
     | javaFieldObject javaClassObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17012
     javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17013
     javaClassObject := javaFieldObject instVarNamed: #clazz.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17014
     ^self classForJavaClassObject: javaClassObject.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17015
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17016
    "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
 17017
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17018
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17019
_sun_misc_Unsafe_staticFieldOffset: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17020
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17021
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldOffset(Ljava/lang/reflect/Field;)J'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17022
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17023
    | javaFieldObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17024
    javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17025
    ^javaFieldObject instVarNamed: #slot
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17026
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17027
    "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
 17028
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17029
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17030
_sun_misc_Unsafe_unpark: nativeContext
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17031
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17032
    <javanative: 'sun/misc/Unsafe' name: 'unpark(Ljava/lang/Object;)V'>
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17033
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17034
    ^ UnimplementedNativeMethodSignal raise
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17035
!
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17036
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17037
_sun_misc_VM_initialize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17039
    <javanative: 'sun/misc/VM' name: 'initialize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17041
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17042
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17043
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17044
    "Created: / 26-11-2010 / 18:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17045
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17046
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17047
!JavaVM class methodsFor:'native - sun.nio.ch'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17048
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17049
_sun_nio_ch_FileChannelImpl_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17050
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17051
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'initIDs()J'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17052
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17053
    ^ 4096 "/page size, see
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17054
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17055
    "Modified: / 10-07-2012 / 01:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17056
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17057
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17058
_sun_nio_ch_FileChannelImpl_map0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17059
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17060
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'map0(IJJ)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17061
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17062
    ^ UnimplementedNativeMethodSignal raise
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17063
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17064
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17065
_sun_nio_ch_FileChannelImpl_position0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17066
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17067
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'position0(Ljava/io/FileDescriptor;J)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17068
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17069
    | fd position stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17070
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17071
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17072
    position := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17073
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17074
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17075
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17076
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17077
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17078
    ^position = -1 
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17079
        ifTrue:[stream position0Based]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17080
        ifFalse:[stream position0Based: position. 0].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17081
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17082
    "Modified: / 10-07-2012 / 01:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17083
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17084
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17085
_sun_nio_ch_FileChannelImpl_size0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17086
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17087
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'size0(Ljava/io/FileDescriptor;)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17088
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17089
    | fd stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17090
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17091
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17092
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17093
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17094
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17095
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17096
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17097
    ^stream fileSize max: stream position0Based.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17098
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17099
    "Modified: / 10-07-2012 / 01:28:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17100
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17101
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17102
_sun_nio_ch_FileChannelImpl_truncate0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17103
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17104
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'truncate0(Ljava/io/FileDescriptor;J)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17105
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17106
    | fd size stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17107
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17108
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17109
    size := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17110
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17111
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17112
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17113
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17114
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17115
    stream truncateTo: size.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17116
    ^0.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17117
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17118
    "Modified: / 10-07-2012 / 01:02:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17119
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17120
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17121
_sun_nio_ch_FileDispatcher_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17122
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17123
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17124
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17125
    ^ JavaNioSupport _sun_nio_ch_FileDispatcher_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17126
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17127
    "Modified: / 06-07-2012 / 22:35:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17128
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17129
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17130
_sun_nio_ch_FileDispatcher_preClose0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17131
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17132
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'preClose0(Ljava/io/FileDescriptor;)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17133
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17134
    "Nothing to do here"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17135
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17136
    "Modified: / 10-07-2012 / 00:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17137
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17138
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17139
_sun_nio_ch_FileDispatcher_read0: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17140
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17141
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'read0(Ljava/io/FileDescriptor;JI)I'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17142
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17143
    | fd address len stream read |
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17144
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17145
    fd := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17146
    address := nativeContext argAt: 2.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17147
    len := nativeContext argAt: 4.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17148
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17149
    stream := self validateFileDescriptor: fd.
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17150
    stream atEnd ifTrue:[ ^ -1 ].
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17151
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17152
        self shouldImplement
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17153
        "/WAS: read := stream nextBytes:len into:SimulatedNativeMemory memory startingAt: address
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17154
    ] on: Error do:[:ex|
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17155
        self throwIOExceptionWithMessage: ex description.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17156
        ^0
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17157
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17158
    ^read
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17159
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17160
    "Modified (comment): / 11-07-2012 / 10:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17161
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17162
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17163
_sun_nio_ch_FileDispatcher_write0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17164
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17165
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'write0(Ljava/io/FileDescriptor;JI)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17166
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17167
    | fd address len stream writtem |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17168
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17169
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17170
    address := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17171
    len := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17172
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17173
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17174
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17175
        self shouldImplement.  
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17176
        "/WAS: writtem := stream nextPutBytes:len from:SimulatedNativeMemory memory startingAt: address
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17177
    ] on: Error do:[:ex|
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17178
        self throwIOExceptionWithMessage: ex description.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17179
        ^0
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17180
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17181
    ^writtem
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17182
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17183
    "Modified: / 11-07-2012 / 10:38:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17184
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17185
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17186
_sun_nio_ch_IOUtil_initIDs: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17187
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17188
    <javanative: 'sun/nio/ch/IOUtil' name: 'initIDs()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17189
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17190
    "Nothing to do here"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17191
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17192
    "Modified: / 06-07-2012 / 22:10:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17193
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17194
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17195
_sun_nio_ch_NativeThread_current: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17196
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17197
    <javanative: 'sun/nio/ch/NativeThread' name: 'current()J'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17198
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17199
    ^ JavaNioSupport _sun_nio_ch_NativeThread_current
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17200
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17201
    "Modified: / 06-07-2012 / 22:39:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17202
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17203
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17204
_sun_nio_ch_NativeThread_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17205
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17206
    <javanative: 'sun/nio/ch/NativeThread' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17207
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17208
    ^ JavaNioSupport _sun_nio_ch_NativeThread_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17209
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17210
    "Modified: / 06-07-2012 / 22:38:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17211
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17212
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17213
_sun_nio_ch_Net_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17214
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17215
    <javanative: 'sun/nio/ch/Net' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17216
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17217
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17218
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17219
    "Modified: / 10-05-2012 / 17:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17220
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17221
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17222
_sun_nio_ch_ServerSocketChannelImpl_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17223
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17224
    <javanative: 'sun/nio/ch/ServerSocketChannelImpl' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17225
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17226
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17227
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17228
    "Modified: / 10-05-2012 / 16:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17229
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17230
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17231
!JavaVM class methodsFor:'native - sun.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17232
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17233
_sun_reflect_ConstantPool_getDoubleAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17234
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17235
    <javanative: 'sun/reflect/ConstantPool' name: 'getDoubleAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17236
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17237
        | cpool  index  double |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17238
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17239
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17240
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17241
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17242
    double := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17243
    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
 17244
    ^ double
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17245
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17246
    "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
 17247
    "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
 17248
    "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
 17249
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17250
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17251
_sun_reflect_ConstantPool_getIntAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17252
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17253
    <javanative: 'sun/reflect/ConstantPool' name: 'getIntAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17254
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17255
        | cpool  index  int |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17256
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17257
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17258
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17259
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17260
    int := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17261
    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
 17262
    ^ int
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17263
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17264
    "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
 17265
    "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
 17266
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17267
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17268
_sun_reflect_ConstantPool_getLongAt0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17269
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17270
    <javanative: 'sun/reflect/ConstantPool' name: 'getLongAt0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17271
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17272
        | cpool  index  long |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17273
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17274
    cpool := self reflection constantPoolFor:(nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17275
    index := nativeContext at:3.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17276
     "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17277
    long := cpool at:index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17278
    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
 17279
    ^ long
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17280
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17281
    "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
 17282
    "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
 17283
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17284
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17285
_sun_reflect_ConstantPool_getUTF8At0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17286
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17287
    <javanative: 'sun/reflect/ConstantPool' name: 'getUTF8At0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17288
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17289
    
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17290
    | cpool index string |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17291
    cpool := self reflection constantPoolFor: (nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17292
    index := nativeContext at: 3. 
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17293
    "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17294
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17295
    string := cpool at: index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17296
    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
 17297
    ^Java as_String: string
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17298
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17299
    "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
 17300
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17301
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17302
_sun_reflect_NativeConstructorAccessorImpl_newInstance0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17304
    <javanative: 'sun/reflect/NativeConstructorAccessorImpl' name: 'newInstance0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17306
    
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 17307
    | ctor args method instance |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17308
    ctor := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17309
    args := aJavaContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17310
    method := self reflection methodForJavaConstructorObject: ctor.
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17311
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17312
    instance := method javaClass new.
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
 17313
    self invoke: ctor receiver: instance arguments: args context: aJavaContext constructor: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17314
    ^instance
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17315
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17316
    "Created: / 26-11-2010 / 11:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17317
    "Modified: / 09-02-2011 / 01:12:10 / Marcel Hlopko <hlopik@gmail.com>"
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
 17318
    "Modified: / 06-07-2012 / 23:55:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17319
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17321
_sun_reflect_NativeMethodAccessorImpl_invoke0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17323
    <javanative: 'sun/reflect/NativeMethodAccessorImpl' name: 'invoke0'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17324
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17325
    private static native Object invoke0(Method m, Object obj, Object[] args);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17326
    "
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 17327
    | m obj args method |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17328
    m := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17329
    obj := nativeContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17330
    args := nativeContext argAt: 3.
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17331
    method := self reflection methodForJavaMethodObject: m.
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17332
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17333
    ^ self invoke: m receiver: obj arguments: args context: nativeContext constructor: false.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17334
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17335
    "Created: / 06-02-2011 / 00:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17336
    "Modified: / 28-02-2011 / 16:57:31 / Marcel Hlopko <hlopik@gmail.com>"
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17337
    "Modified: / 19-08-2011 / 15:06:00 / cg"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17338
    "Modified: / 05-07-2012 / 23:49:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17339
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17341
_sun_reflect_Reflection_getCallerClass: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17342
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17343
    <javanative: 'sun/reflect/Reflection' name: 'getCallerClass'>
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17344
    "
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17345
    /** Returns the class of the method <code>realFramesToSkip</code>
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17346
        frames up the stack (zero-based), ignoring frames associated
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17347
        with java.lang.reflect.Method.invoke() and its implementation.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17348
        The first frame is that associated with this method, so
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17349
        <code>getCallerClass(0)</code> returns the Class object for
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17350
        sun.reflect.Reflection. Frames associated with
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17351
        java.lang.reflect.Method.invoke() and its implementation are
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17352
        completely ignored and do not count toward the number of 'real'
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17353
        frames skipped. */
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17354
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17355
    
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17356
    | framesToSkip framesSkipped frame cls |
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17357
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17358
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17359
    framesToSkip := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17360
    framesSkipped := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17361
    frame := aJavaContext.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17362
    [ framesSkipped == framesToSkip ] whileFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17363
        frame := frame sender.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17364
        "Frames for java,lang.reflect.Method.invoke() does not count, sigh.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17365
         What a crappy implementation"
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17366
        (frame selector == #'invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;' 
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17367
            and:[ frame receiver class name = #'java/lang/reflect/Method']) ifFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17368
                framesSkipped := framesSkipped + 1
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17369
            ]
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17370
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17371
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17372
    cls := frame receiver class theNonMetaclass.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17373
    ^cls isJavaClass 
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17374
        ifTrue:[JavaVM javaClassObjectForClass:cls]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17375
        ifFalse:[nil]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17377
    "Created: / 25-10-2010 / 16:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17378
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17379
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17380
_sun_reflect_Reflection_getClassAccessFlags: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17381
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17382
    <javanative: 'sun/reflect/Reflection' name: 'getClassAccessFlags'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17383
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17384
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17385
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17386
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17387
    ^(class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17388
        1041"FIXME: make it symbolic"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17389
    ] ifFalse:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17390
        class accessFlags
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17391
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17393
    "Created: / 26-11-2010 / 10:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17394
    "Modified: / 28-01-2011 / 15:19:28 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17395
    "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
 17396
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17397
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17398
!JavaVM class methodsFor:'native - sun.security.provider'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17399
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17400
_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17401
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17402
    <javanative: 'sun/security/provider/NativeSeedGenerator' name: 'nativeGenerateSeed([B)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17403
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17404
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17405
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17406
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17407
!JavaVM class methodsFor:'queries'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17408
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17409
booted
1209
vranyj1
parents: 1205
diff changeset
 17410
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17411
    | jVM |
1209
vranyj1
parents: 1205
diff changeset
 17412
vranyj1
parents: 1205
diff changeset
 17413
    "/Slightly faster variant of the code below
vranyj1
parents: 1205
diff changeset
 17414
    ^SystemClassLoader notNil and:[
vranyj1
parents: 1205
diff changeset
 17415
        jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 17416
        jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ]
vranyj1
parents: 1205
diff changeset
 17417
    ].
vranyj1
parents: 1205
diff changeset
 17418
vranyj1
parents: 1205
diff changeset
 17419
"/    jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 17420
"/    ^ 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
 17421
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17422
    "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17423
     JavaVM booted"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17424
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17425
    "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
 17426
    "Modified: / 02-11-2011 / 22:08:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1209
vranyj1
parents: 1205
diff changeset
 17427
    "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
 17428
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17429
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17430
!JavaVM class methodsFor:'semaphores & monitors'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17431
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17432
waitFor: sema state: pState timeOut: tmo 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17433
    "wait"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17434
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17435
    | wasBlocked  thisProcess  releasedCount  acquiredCount |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17436
    thisProcess := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17437
    wasBlocked := OperatingSystem blockInterrupts.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17438
    releasedCount := self countAcquiredMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17439
    (self hasAcquiredMonitorsOfProcess: thisProcess) ifTrue: [
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17440
        MonitorTrace ifTrue: [
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17441
            Logger 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17442
                log: thisProcess name , ' going into WAIT - releasing ' 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17443
                        , (self countAcquiredMonitorsOfProcess: thisProcess) printString 
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17444
                            , ' monitors'
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17445
                severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17446
                facility: #JVM.
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17447
        ].
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17448
        self releaseMonitorsOfProcess: thisProcess.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17449
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17450
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17451
    pState notNil ifTrue: [ thisProcess state: pState ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17452
    sema isNil ifTrue: [ Delay waitForMilliseconds: tmo ] ifFalse: [
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17453
        (tmo isNil or: [ tmo = 0 ]) ifTrue: [ sema wait. ] ifFalse: [
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17454
            sema waitWithTimeout: tmo / 1000.
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17455
        ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17456
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17457
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17458
    "/ re-enter monitors.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17459
    
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17460
    (self hasEnteredMonitorsOfProcess: thisProcess) ifTrue: [
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17461
        wasBlocked := OperatingSystem blockInterrupts.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17462
        Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17463
            log: thisProcess name , ' has been notified - trying to acquire ' 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17464
                    , (self countEnteredMonitorsOfProcess: thisProcess) printString 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17465
                        , ' monitors'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17466
            severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17467
            facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17468
        self acquireMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17469
        acquiredCount := self countAcquiredMonitorsOfProcess: thisProcess.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
 17470
        self assert: acquiredCount = releasedCount.
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17471
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17472
    ].
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17473
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17474
    "Created: / 30-12-1998 / 19:19:35 / cg"
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17475
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1142
1a1ce9fd0a16 java monitors (not plugged in yet)
hlopkmar
parents: 1138
diff changeset
 17476
    "Modified: / 20-11-2011 / 12:36:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17477
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17479
!JavaVM class methodsFor:'vm support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17480
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17481
_ANEWARRAY2:classRef _:size 
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17482
    "vm helper method for new resolving - creates new array of class identified by classRef"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17483
    
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17484
    |javaClass|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17485
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17486
"/    size == 20 ifTrue:[self halt].
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17487
1151
vranyj1
parents: 1150
diff changeset
 17488
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17489
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17490
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17491
        ^nil
vranyj1
parents: 1150
diff changeset
 17492
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17493
    classRef ifNil:[ self halt:'cant create array from nil ref' ].
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17494
    javaClass := classRef resolve.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17495
    javaClass ifNil:[ self halt:'cant create array from nil javaClass' ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17496
    self assert:javaClass javaArrayClass isJavaArrayClass. 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17497
    ^ javaClass javaArrayClass new:size
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17498
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17499
    "Created: / 18-05-2011 / 21:04:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17500
    "Modified: / 12-12-2011 / 11:03:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17501
!
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17502
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17503
_ANEWARRAY:classRef _:size 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17504
    |ref|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17505
1151
vranyj1
parents: 1150
diff changeset
 17506
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17507
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17508
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17509
        ^nil
vranyj1
parents: 1150
diff changeset
 17510
    ].
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17511
    ref := classRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17512
    ref isUnresolved ifTrue:[ ref := ref javaClass ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17513
    self assert:ref javaArrayClass isJavaArrayClass.
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17514
    ^ ref javaArrayClass new:size
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17516
    "Created: / 17-12-2010 / 14:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17517
    "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
 17518
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17520
_ARRAYLENGTH:arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17521
    arr isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17522
        "/self halt:'should not happen'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17523
        self throwNullPointerException.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17524
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17525
    ^ arr size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17526
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17527
    "Created: / 08-01-1999 / 14:38:27 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17528
    "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
 17529
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17530
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17531
_ATHROW:aJavaException
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17532
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17533
    <resource: #skipInDebuggersWalkBack>
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17534
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17535
    aJavaException isNil ifTrue:[
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17536
        self halt:'cannot happen'
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17537
    ].
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17538
    "When an exception is handled in Smalltalk code and the stack is
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17539
     being unwound, then all intermediate Java finally blocks are executed.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17540
     This is done by fake-throwing special FinallyToken, as there must an 
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17541
     exception instance for Java. A Java compiler compiles unconditional
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17542
     ATHROW at the end of finally block to pass execution to another handler.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17543
     We don't want to do so, in case we're manually invoking finally blocks.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17544
     Hence following hack: we teleport back to handler caller"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 17545
    aJavaException class == JavaContext::FinallyToken ifTrue:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17546
        aJavaException pass.
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
 17547
        self halt:'Should never be reached'.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17548
    ].
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17549
    self throwException:aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17551
    "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
 17552
    "Modified: / 08-11-2011 / 16:32:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 17553
    "Modified: / 09-04-2012 / 21:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17554
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17555
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17556
_CHECKCAST2: object _: aJavaClassRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17557
    "Trampouline for unhandled cases ..."
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17558
    
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17559
    | class |
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17560
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17561
    aJavaClassRef isJavaRef ifTrue: [ class := aJavaClassRef resolve ] ifFalse: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17562
        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
 17563
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17564
    (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
 17565
        self breakPoint: #mh.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17566
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17567
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17568
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17569
        
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17570
    ^ true.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17571
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17572
    "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
 17573
    "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
 17574
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17575
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17576
_CHECKCAST: object _: classOrClassRef 
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17577
    "Trampouline for unhandled cases ..."
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17578
    
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17579
    | class |
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17580
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17581
    self breakPoint: #mh.
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17582
    class := classOrClassRef javaClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17583
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17584
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17585
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17586
     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
 17587
    " "object isNil"
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17588
    (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
 17589
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17590
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17591
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17592
    ^ true
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17594
    "Created: / 08-01-1999 / 14:53:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17595
    "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
 17596
    "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
 17597
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17599
_D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17600
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17601
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17602
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17603
    v > 16r7FFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17604
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17605
	v := 16r7FFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17606
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17607
	v < 16r80000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17608
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17609
	    v := 16r80000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17610
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17611
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17612
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17613
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17614
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17615
    "Created: / 8.1.1999 / 14:47:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17616
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17618
_D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17619
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17620
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17621
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17622
    v > 16r7FFFFFFFFFFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17623
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17624
	v := 16r7FFFFFFFFFFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17625
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17626
	v < 16r8000000000000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17627
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17628
	    v := 16r8000000000000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17629
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17630
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17631
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17633
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17634
    "Created: / 8.1.1999 / 14:46:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17635
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17637
_DADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17638
    ^ op1 asFloat + op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17640
    "Created: / 8.1.1999 / 15:11:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17641
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17643
_DDIV:op1 _:op2
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17644
    ^ op1 asFloat uncheckedDivide: op2 asFloat.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17645
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17646
    "Created: / 08-01-1999 / 15:09:10 / cg"
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 17647
    "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
 17648
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17650
_DMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17651
    ^ op1 asFloat * op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17653
    "Created: / 8.1.1999 / 14:49:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17654
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17656
_DNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17657
    ^ op asFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17659
    "Created: / 8.1.1999 / 15:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17660
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17662
_DSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17663
    ^ op1 asFloat - op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17665
    "Created: / 8.1.1999 / 15:10:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17666
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17668
_F2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17669
    ^ self _D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17670
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17671
    "Created: / 8.1.1999 / 14:47:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17672
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17673
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17674
_F2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17675
    ^ self _D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17677
    "Created: / 8.1.1999 / 14:47:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17678
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17680
_FADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17681
    ^ op1 asShortFloat + op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17683
    "Created: / 8.1.1999 / 15:11:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17684
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17686
_FDIV:op1 _:op2
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17687
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17688
    op1 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17689
        op2 isZero ifTrue:[ ^ Float NaN ]
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17690
    ].
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17691
    op2 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17692
        ^ Float infinity
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17693
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17694
    ^ op1 asShortFloat / op2 asShortFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17695
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17696
    "Created: / 08-01-1999 / 15:09:32 / cg"
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 17697
    "Modified: / 06-07-2012 / 13:12:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17698
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17699
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17700
_FMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17701
    ^ op1 asShortFloat * op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17703
    "Created: / 8.1.1999 / 14:50:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17704
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17706
_FNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17707
    ^ op asShortFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17709
    "Created: / 8.1.1999 / 15:06:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17710
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17712
_FSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17713
    ^ op1 asShortFloat - op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17715
    "Created: / 8.1.1999 / 15:08:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17716
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17717
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17718
_INSTANCEOF2: object _: classRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17719
    |class|
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17720
    classRef isJavaRef ifFalse: [self halt: 'expected only classRefs - maybe I was wrong'].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17721
    class := classRef resolve.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17722
    object ifNil: [ ^ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17723
    ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17724
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17725
    "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
 17726
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17727
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17728
_INSTANCEOF:object _:class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17730
    object ifNil:[^0].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17732
    ^(self canCast: object class to: class)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17733
        ifTrue:[1]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17734
        ifFalse:[0]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17736
    "Created: / 08-01-1999 / 14:52:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17737
    "Modified: / 27-01-1999 / 20:56:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17738
    "Modified: / 25-02-2011 / 18:31:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17739
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17741
_L2D:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17742
    ^ op1 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17744
    "Created: / 8.1.1999 / 14:46:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17745
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17747
_L2F:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17748
    ^ op1 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17750
    "Created: / 8.1.1999 / 14:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17751
    "Modified: / 8.1.1999 / 14:50:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17754
_LADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17755
    |sum|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17757
    sum := (op1 + op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17758
    ^ sum
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17760
    "Created: / 8.1.1999 / 15:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17761
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17763
_LAND:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17764
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17766
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17767
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17768
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17769
    rslt := op1 bitAnd: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17770
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17772
    "Modified: / 7.1.1998 / 21:21:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17773
    "Created: / 8.1.1999 / 14:54:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17774
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17776
_LDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17777
    |quo|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17779
    quo := op1 quo: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17780
    ^ quo
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17782
    "Created: / 8.1.1999 / 15:04:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17783
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17785
_LMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17786
    |prod o1 o2 sign|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17787
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17788
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17789
    "/ ST's largeIntegers compute a correct result;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17790
    "/ but here, we want the overflow to flow into the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17791
    "/ sign bit ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17793
    sign := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17794
    (o1 := op1) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17795
	sign := -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17796
	o1 := o1 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17797
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17798
    (o2 := op2) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17799
	sign := sign negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17800
	o2 := o2 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17801
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17802
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17803
    prod := (o1 * o2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17804
    (prod bitAnd:16r8000000000000000) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17805
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17806
    sign == -1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17807
	prod := prod negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17808
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17809
    ^ prod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17811
    "Created: / 8.1.1999 / 15:10:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17812
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17814
_LNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17815
    ^ op asInteger negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17816
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17817
    "Created: / 8.1.1999 / 15:06:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17818
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17820
_LOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17821
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17823
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17824
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17825
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17826
    rslt := op1 bitOr: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17827
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17829
    "Created: / 8.1.1999 / 15:05:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17830
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17832
_LREM:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17833
    |rem|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17834
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17835
    rem := op1 rem: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17836
    ^ rem
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17837
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17838
    "Modified: / 7.1.1998 / 00:23:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17839
    "Created: / 8.1.1999 / 15:04:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17840
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17842
_LSHL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17843
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17845
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17846
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17847
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17848
    rslt := (op1 bitShift:op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17849
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17850
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17851
    "Created: / 8.1.1999 / 14:51:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17852
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17854
_LSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17855
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17857
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17858
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17859
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17861
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17862
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17863
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17864
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17865
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17867
    "Created: / 8.1.1999 / 14:51:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17868
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17869
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17870
_LSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17871
    |diff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17872
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17873
    diff := (op1 - op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17874
    ^ diff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17876
    "Created: / 8.1.1999 / 15:10:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17877
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17879
_LUSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17880
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17882
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17883
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17884
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17885
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17886
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17887
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17888
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17889
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17890
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17892
    "Modified: / 7.1.1998 / 21:22:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17893
    "Created: / 8.1.1999 / 14:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17894
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17896
_LXOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17897
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17898
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17899
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17900
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17901
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17902
    rslt := op1 bitXor: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17903
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17905
    "Created: / 8.1.1999 / 15:12:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17906
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17907
1093
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17908
_MONITORENTER: someObject 
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17909
    self assert: (thisContext sender isJavaContext).
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17910
    self assert: (thisContext sender isMarkedForUnwind).
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17911
    self monitorEnter: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17912
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17913
    "Created: / 08-01-1999 / 14:23:10 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17914
    "Modified: / 08-01-1999 / 18:47:26 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17915
    "Modified: / 10-08-2011 / 20:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 17916
    "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
 17917
!
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17918
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 17919
_MONITOREXIT: someObject 
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17920
self assert: (thisContext sender isJavaContext).
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 17921
    self monitorExit: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17922
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17923
    "Created: / 08-01-1999 / 14:23:19 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17924
    "Modified: / 08-01-1999 / 18:47:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 17925
    "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
 17926
    "Modified: / 09-11-2011 / 12:42:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17927
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17928
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17929
_MULTINEW2: classRef _: dim1 
927
vranyj1
parents: 926
diff changeset
 17930
vranyj1
parents: 926
diff changeset
 17931
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17932
1151
vranyj1
parents: 1150
diff changeset
 17933
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17934
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17935
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17936
        ^nil
vranyj1
parents: 1150
diff changeset
 17937
    ].
927
vranyj1
parents: 926
diff changeset
 17938
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17939
    arrCls := classRef resolve.
vranyj1
parents: 926
diff changeset
 17940
    arr := arrCls new: dim1.
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17941
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17942
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17943
    "Created: / 19-05-2011 / 10:46:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17944
    "Modified: / 22-11-2011 / 09:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 17945
!
vranyj1
parents: 926
diff changeset
 17946
vranyj1
parents: 926
diff changeset
 17947
_MULTINEW2: classRef _: dim1 _: dim2
vranyj1
parents: 926
diff changeset
 17948
vranyj1
parents: 926
diff changeset
 17949
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17950
1151
vranyj1
parents: 1150
diff changeset
 17951
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17952
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17953
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17954
        ^nil
vranyj1
parents: 1150
diff changeset
 17955
    ].
vranyj1
parents: 1150
diff changeset
 17956
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17957
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17958
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17959
        ^nil
vranyj1
parents: 1150
diff changeset
 17960
    ].
vranyj1
parents: 1150
diff changeset
 17961
vranyj1
parents: 1150
diff changeset
 17962
927
vranyj1
parents: 926
diff changeset
 17963
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17964
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17965
    arr := arrCls new: dim2.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17966
    1 to: dim2 do:[:i|
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17967
        arr at: i put: (arrCls javaComponentClass new: dim1)
927
vranyj1
parents: 926
diff changeset
 17968
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17969
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17970
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 17971
    "Created: / 19-05-2011 / 10:47:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17972
    "Modified: / 22-11-2011 / 09:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 17973
!
vranyj1
parents: 926
diff changeset
 17974
vranyj1
parents: 926
diff changeset
 17975
_MULTINEW2: classRef _: dim1 _: dim2 _: dim3
vranyj1
parents: 926
diff changeset
 17976
vranyj1
parents: 926
diff changeset
 17977
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 17978
1151
vranyj1
parents: 1150
diff changeset
 17979
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17980
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17981
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17982
        ^nil
vranyj1
parents: 1150
diff changeset
 17983
    ].
vranyj1
parents: 1150
diff changeset
 17984
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17985
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17986
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17987
        ^nil
vranyj1
parents: 1150
diff changeset
 17988
    ].
vranyj1
parents: 1150
diff changeset
 17989
    dim3 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17990
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17991
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17992
        ^nil
vranyj1
parents: 1150
diff changeset
 17993
    ].
vranyj1
parents: 1150
diff changeset
 17994
vranyj1
parents: 1150
diff changeset
 17995
927
vranyj1
parents: 926
diff changeset
 17996
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 17997
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17998
    arr := arrCls new: dim3.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 17999
    1 to: dim3 do:[:i|
927
vranyj1
parents: 926
diff changeset
 18000
        | arr2 |
vranyj1
parents: 926
diff changeset
 18001
        arr2 := arrCls javaComponentClass new: dim2.
vranyj1
parents: 926
diff changeset
 18002
        1 to: dim2 do:[:j|
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18003
            arr2 at: j put: (arrCls javaComponentClass javaComponentClass new: dim1).
927
vranyj1
parents: 926
diff changeset
 18004
        ].
vranyj1
parents: 926
diff changeset
 18005
        arr at: i put: arr2.
vranyj1
parents: 926
diff changeset
 18006
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18007
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18008
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18009
    "Created: / 19-05-2011 / 10:47:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18010
    "Modified: / 22-11-2011 / 09:45:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18011
!
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18012
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18013
_MULTINEW:typeRef _:dim1 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18014
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18015
    |arr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18017
    arr := typeRef new:dim1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18019
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18021
    "Created: / 08-01-1999 / 14:15:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18022
    "Modified: / 08-01-1999 / 18:03:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18023
    "Modified: / 16-03-2011 / 16:20:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18024
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18025
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18026
_MULTINEW: typeRef _: dim1 _: dim2 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18027
    | arr |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18028
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18029
    arr := typeRef new: dim2.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18030
    1 to: dim2
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18031
        do: [:idx | arr at: idx put: (self _MULTINEW: typeRef javaComponentClass _: dim1) ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18032
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18034
    "Created: / 08-01-1999 / 14:15:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18035
    "Modified: / 08-01-1999 / 17:58:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18036
    "Modified: / 16-03-2011 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18037
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18038
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18039
_MULTINEW:typeRef _:dim1 _:dim2 _:dim3 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18040
    |clsRef cls arr elType elSizes|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18042
    clsRef := typeRef asClassPointerRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18043
    cls := clsRef javaArrayClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18044
    arr := cls new:dim3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18045
    elType := typeRef deref.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18046
    1 to:dim3
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18047
        do:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18048
            [:idx | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18049
            arr at:idx
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18050
                put:(self 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18051
                        _MULTINEW:elType
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18052
                        _:dim1
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18053
                        _:dim2) ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18054
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18055
"/ self halt.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18056
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18057
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18059
    "Modified: / 6.1.1998 / 23:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18060
    "Created: / 8.1.1999 / 14:15:49 / cg"
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18061
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18062
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18063
_NEWARRAY:type _:size 
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18064
    "VM helper method NEWARRAY insn. Called only when
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18065
     size is not an SmallInt or negative"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18066
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18067
    size < 0 ifTrue:[
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18068
        self throwNegativeArraySizeException: size.
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18069
    ]
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18070
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18071
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18072
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18074
!JavaVM class methodsFor:'windows - events'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18075
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18076
awtEventsForEvent: anEvent javaWindow: jWin 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18077
    "given an ST/X event, create corresponding AWT event(s) for it"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18078
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18079
    | 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
 18080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18081
    type := anEvent type.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18082
    eventArgs := anEvent arguments.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18083
    key := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18084
    modifiers := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18085
    x := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18086
    y := 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18087
    ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18088
        or: [ (type == #graphicExposeX:y:width:height:) or: [ (type == #damage) ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18089
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18090
                "/        jWindowEventClass := Java classForName:'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18091
                "/        id := (jPaintEventClass instVarNamed:'PAINT').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18092
                jPaintEventClass := self classForName: 'java.awt.event.PaintEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18093
                id := (jPaintEventClass instVarNamed: 'UPDATE').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18094
                ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18095
                    or: [ (type == #graphicExposeX:y:width:height:) ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18096
                        ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18097
                            x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18098
                            y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18099
                            w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18100
                            h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18101
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18102
                        ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18103
                            x := eventArgs left.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18104
                            y := eventArgs top.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18105
                            w := eventArgs width.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18106
                            h := eventArgs height.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18107
                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18108
                jRect := (Java classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18109
                jRect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18110
                jRect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18111
                jRect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18112
                jRect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18113
                jEv := jPaintEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18114
                jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18115
                jEv instVarNamed: 'updateRect' put: jRect.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18116
                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18117
"/        jEv instVarNamed:'g'         put:jWin.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18118
                
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18119
                ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18120
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18121
    (anEvent isKeyEvent 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18122
        or: [ anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18123
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18124
                jInputEventClass := Java classForName: 'java.awt.event.InputEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18125
                anEvent hasAlt ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18126
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'ALT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18127
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18128
                anEvent hasCtrl ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18129
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'CTRL_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18130
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18131
                anEvent hasMeta ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18132
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'META_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18133
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18134
                anEvent hasShift ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18135
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18136
                                bitOr: (jInputEventClass instVarNamed: 'SHIFT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18137
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18138
                anEvent hasButton1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18139
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18140
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON1_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18141
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18142
                anEvent hasButton2 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18143
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18144
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON2_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18145
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18146
                anEvent hasButton3 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18147
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18148
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON3_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18149
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18150
                anEvent isPointerEnterLeaveEvent ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18151
                    "/ ST/X does not (yet) record this information
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18152
                    "/ with pointerLeave events.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18153
                    x := anEvent x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18154
                    y := anEvent y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18155
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18156
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18157
    anEvent isKeyEvent ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18158
        jKeyEventClass := Java classForName: 'java.awt.event.KeyEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18159
        key := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18160
        keyChar := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18161
        key := anEvent key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18162
        key isCharacter ifTrue: [ key := keyChar := key asciiValue ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18163
            untranslatedKey := anEvent view device keyboardMap keyAtValue: key
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18164
                        ifAbsent: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18165
            untranslatedKey == #Insert ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18166
                key := jKeyEventClass instVarNamed: 'VK_INSERT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18167
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18168
            untranslatedKey == #Delete ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18169
                key := jKeyEventClass instVarNamed: 'VK_DELETE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18170
                "/ 127
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18171
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18172
            untranslatedKey == #BackSpace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18173
                key := jKeyEventClass instVarNamed: 'VK_BACK_SPACE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18174
                "/ 8
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18175
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18176
            untranslatedKey == #Return ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18177
                key := jKeyEventClass instVarNamed: 'VK_ENTER'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18178
                "/ 13
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18179
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18180
            untranslatedKey == #Tab ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18181
                key := jKeyEventClass instVarNamed: 'VK_TAB'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18182
                "/ 9
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18183
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18184
            untranslatedKey == #Home ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18185
                key := jKeyEventClass instVarNamed: 'VK_HOME'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18186
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18187
            untranslatedKey == #End ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18188
                key := jKeyEventClass instVarNamed: 'VK_END'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18189
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18190
            (key == #PreviousPage or: [ untranslatedKey == #Prior ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18191
                key := jKeyEventClass instVarNamed: 'VK_PAGE_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18192
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18193
            (key == #NextPage or: [ key == #EndOfText ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18194
                key := jKeyEventClass instVarNamed: 'VK_PAGE_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18195
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18196
            untranslatedKey == #CursorUp ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18197
                key := jKeyEventClass instVarNamed: 'VK_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18198
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18199
            untranslatedKey == #CursorDown ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18200
                key := jKeyEventClass instVarNamed: 'VK_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18201
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18202
            untranslatedKey == #CursorLeft ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18203
                key := jKeyEventClass instVarNamed: 'VK_LEFT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18204
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18205
            untranslatedKey == #CursorRight ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18206
                key := jKeyEventClass instVarNamed: 'VK_RIGHT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18207
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18208
            (#( #F1 #F2 #F3 #F4 #F5 #F6 #F7 #F8 #F9 #F10 #F11 #F12 ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18209
                includes: untranslatedKey) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18210
                    ifTrue: [ key := jKeyEventClass instVarNamed: ('VK_' , untranslatedKey) ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18211
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18212
        (type == #keyPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18213
            id := jKeyEventClass instVarNamed: 'KEY_PRESSED'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18214
        ] ifFalse: [ id := jKeyEventClass instVarNamed: 'KEY_RELEASED' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18215
        jEv := jKeyEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18216
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18217
        jEv instVarNamed: 'keyCode' put: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18218
        jEv instVarNamed: 'keyChar' put: keyChar.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18219
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18220
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18221
"/        jEv instVarNamed:'x'         put:x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18222
"/        jEv instVarNamed:'y'         put:y.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18223
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18224
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18225
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18226
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18227
    (anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18228
        jMouseEventClass := Java classForName: 'java.awt.event.MouseEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18229
        clickCount := 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18230
        (type == #buttonPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18231
            id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18232
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18233
            (type == #buttonRelease:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18234
                id := jMouseEventClass instVarNamed: 'MOUSE_RELEASED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18235
            ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18236
                (type == #buttonMotion:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18237
                    (anEvent state bitAnd: (anEvent view device anyButtonMotionMask)) == 0 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18238
                        id := jMouseEventClass instVarNamed: 'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18239
                    ] ifFalse: [ id := jMouseEventClass instVarNamed: 'MOUSE_DRAGGED'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18240
                ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18241
                    "/                    (type == #'pointerMotion:x:y:') ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18242
                    "/                        id := jMouseEventClass instVarNamed:'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18243
                    "/                    ] ifFalse:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18244
                    (type == #pointerEnter:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18245
                        id := jMouseEventClass instVarNamed: 'MOUSE_ENTERED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18246
                    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18247
                        (type == #pointerLeave:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18248
                            id := jMouseEventClass instVarNamed: 'MOUSE_EXITED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18249
                        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18250
                            (type == #buttonMultiPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18251
                                id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18252
                                clickCount := 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18253
                            ] ifFalse: [ self halt. ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18254
                            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18255
"/                        ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18256
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18257
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18258
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18259
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18260
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18261
        jEv := jMouseEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18262
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18263
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18264
        jEv instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18265
        jEv instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18266
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18267
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18268
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18269
    (type == #configureX:y:width:height:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18270
        view := anEvent view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18271
        x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18272
        y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18273
        w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18274
        h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18275
        resized := (w ~~ view width or: [ h ~~ view height ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18276
        moved := (x ~~ view left or: [ y ~~ view top ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18277
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18278
"/        (view isTopView or:[view isPopUpView]) ifTrue:[
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18279
        "/ view must update its origin/extent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18280
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18281
        view dispatchEvent: anEvent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18282
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18283
"/        ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18284
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18285
        "/ must change the components extent
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18286
        "/ is there no cleaner way to do this ?
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18287
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18288
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18289
        view isTopView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18290
            view isPopUpView ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18291
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18292
                "/ sigh - don't include the menu.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18293
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18294
                menu := self topViewsMenu: view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18295
                menu notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18296
                    "/ must add the menus height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18297
                    h := h - menu height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18298
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18299
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18300
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18301
        jWin instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18302
        jWin instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18303
        jWin instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18304
        jWin instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18305
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18306
        moved ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18307
            id := (jComponentEventClass instVarNamed: 'COMPONENT_MOVED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18308
            jEv1 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18309
            jEv1 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18310
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18311
        resized ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18312
            id := (jComponentEventClass instVarNamed: 'COMPONENT_RESIZED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18313
            jEv2 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18314
            jEv2 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18315
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18316
        jEv1 isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18317
            jEv2 isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18318
            ^ Array with: jEv2
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18319
        ] ifFalse: [ jEv2 isNil ifTrue: [ ^ Array with: jEv1 ] ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18320
        ^ Array with: jEv1 with: jEv2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18321
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18322
    (type == #focusIn) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18323
        "/ 'focusIn' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18324
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18325
        id := (jComponentEventClass instVarNamed: 'FOCUS_GAINED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18326
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18327
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18328
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18329
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18330
    (type == #focusOut) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18331
        "/ 'focusOut' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18332
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18333
        id := (jComponentEventClass instVarNamed: 'FOCUS_LOST').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18334
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18335
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18336
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18337
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18338
    (type == #mapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18339
        "/ 'mapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18340
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18341
        id := (jComponentEventClass instVarNamed: 'COMPONENT_SHOWN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18342
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18343
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18344
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18345
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18346
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18347
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18348
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18349
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18350
    (type == #unmapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18351
        "/ 'unmapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18352
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18353
        id := (jComponentEventClass instVarNamed: 'COMPONENT_HIDDEN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18354
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18355
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18356
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18357
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18358
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18359
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18360
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18361
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18362
    (type == #terminate) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18363
        jWindowEventClass := Java classForName: 'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18364
         "NEW
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18365
         id := (jWindowEventClass instVarNamed:'WINDOW_CLOSING').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18366
        " "OLD "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18367
        id := (jWindowEventClass instVarNamed: 'WINDOW_CLOSED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18368
         
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18369
        jEv := jWindowEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18370
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18371
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18372
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18373
    EventTrace == true ifTrue: [ ('JAVA: unhandled event:' , type) infoPrintCR. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18374
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18376
    "Created: / 6.1.1998 / 20:38:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18377
    "Modified: / 9.1.1999 / 09:29:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18380
delegatesTo:someOne
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18381
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18383
    "Created: / 25.9.1999 / 16:11:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18384
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18386
doWindowsEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18387
    "invoked in an endless loop by the WToolkit-eventLoop
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18388
     native method."
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18389
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18390
    | sensor  event  more |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18391
    (JavaWindowGroup isNil or: [ KnownWindows isNil ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18392
        "/ '*** eventThread: no windowGroup / views ...' printCR.        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18393
        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
 18394
        "self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18395
            waitFor: FirstWindowCreationSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18396
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18397
            timeOut: nil."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18398
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18399
        "/ Delay waitForSeconds:0.1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18400
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18401
        ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18402
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18403
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18404
    "/ wait for an event to arrive ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18405
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18406
    sensor := JavaWindowGroup sensor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18407
    [ sensor hasEvents or: [ sensor damageCount ~~ 0 ] ] whileFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18408
        EventTrace ifTrue: [ '*** eventThread waiting ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18409
        Processor activeProcess state: #eventWait.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18410
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18411
            waitFor: sensor eventSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18412
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18413
            timeOut: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18414
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18415
    EventTrace ifTrue: [ '*** eventThread event arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18416
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18417
    "/ EventTrace := true
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18418
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18419
    more := true.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18420
    [ more ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18421
        sensor hasDamage ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18422
            EventTrace ifTrue: [ '*** eventThread: damage arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18423
            event := sensor nextDamage.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18424
        ] ifFalse: [ event := sensor nextEvent. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18425
        event isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18426
            EventTrace == true ifTrue: [ '*** eventThread: nil event ignored' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18427
            ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18428
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18429
        more := self processEvent: event
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18430
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18431
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18432
    "Created: / 06-01-1998 / 21:02:40 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18433
    "Modified: / 30-12-1998 / 19:21:36 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18434
    "Modified: / 22-11-2011 / 13:22:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18435
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18436
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18437
processEvent: event 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18438
    | evQ  jEvents  jWToolKitClass  jWToolKit  jWinPeer  jWin  v  eventConsumed |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18439
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18440
    KnownWindows isNil ifTrue: [ ^ false ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18441
    v := event view.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18442
    jWinPeer := self jPeerForView: v.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18443
    jWinPeer isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18444
        v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18445
            "/ mhmh - an event for a JavaView,
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18446
            "/ which has no peer (anyMore ?)
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18447
            "/ should not happen.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18448
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18449
            "/ mhmh - an event for a subcomponent of an ST widget.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18450
            "/ let it be handled normally.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18451
            EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18452
                ('*** eventThread: ' , event type 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18453
                    , '-event for unknown java-view - passed to view.') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18454
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18455
            event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18456
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18457
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18458
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18459
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18460
    "/ change:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18461
    "/ in the previous version, events for ST/X widgets (i.e. buttons etc)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18462
    "/ where not passed to java, but instead forwarded directly to the widget
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18463
    "/ by the code below.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18464
    "/ This has changed, to pass it to Java, which eventually passes it to the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18465
    "/ peer via the handleEvent native method (unless the event got consumed).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18466
    "/ 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
 18467
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18468
    (event isDamage and: [ v isJavaView ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18469
        "/    "/ most views handle their events themself (being ST/X views) ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18470
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18471
        "/    v class ~~ JavaView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18472
        "/"/        v class ~~ StandardSystemView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18473
        "/"/            EventTrace ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18474
        "/"/                    ('*** eventThread: event handled by view itself (' , v class name , ')') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18475
        "/"/            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18476
        "/"/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18477
        "/"/            ^ self.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18478
        "/"/        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18479
        "/        (event type == #'exposeX:y:width:height'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18480
        "/        or:[event type == #'graphicsExposeX:y:width:height']) ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18481
        "/            "/ send to view, but also handle in JAVA
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18482
        "/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18483
        "/        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18484
        "/    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18485
        (#( #mapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18486
         #unmapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18487
         #configureX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18488
         #exposeX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18489
         #graphicsExposeX:y:width:height: ) includes: event type) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18490
            event sendEventWithFocusOn: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18491
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18492
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18493
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18494
    "/ what a kludge - some events are passed back to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18495
    "/ ST via the WComponent-handleEvent native method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18496
    "/ However, repaints are not.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18497
    "/ In order to let ST widgets do the drawing,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18498
    "/ selectively filter exposeEvents from Java ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18499
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18500
    eventConsumed := false.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18501
    v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18502
        "/ all events handled by Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18503
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18504
        eventConsumed := true.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18505
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18506
        "/ let widget handle it.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18507
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18508
        event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18509
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18510
        "/ some are not passed to Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18511
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18512
        event isDamage ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18513
            (v isKindOf: Button) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18514
            (v isKindOf: TextView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18515
            (v isKindOf: Label) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18516
            (v isKindOf: ComboBoxView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18517
            (v isKindOf: ScrollBar) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18518
            (v isKindOf: Scroller) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18519
            (v isKindOf: MenuPanel) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18520
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18521
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18522
    jWin := jWinPeer instVarNamed: 'target'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18523
    EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18524
        ('*** eventThread: event (' , event type , ') handled by JAVA: ') 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18525
            infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18526
        jWinPeer class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18527
        ' (' infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18528
        jWin class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18529
        ')' infoPrintCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18530
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18531
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18532
    "/ create an event
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18533
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18534
    jEvents := self awtEventsForEvent: event javaWindow: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18535
    jEvents isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18536
        EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18537
            ('*** eventThread: event ignored: ' , event type) printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18538
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18539
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18540
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18541
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18542
"/    v superView isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18543
"/        ('*** eventThread: event ignored for topView: ' , event type) printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18544
"/        ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18545
"/    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18546
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18547
    jWToolKitClass := self classForName: 'java.awt.Toolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18548
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18549
    "/ jWToolKit := jWToolKitClass perform:#getDefaultToolkit.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18550
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18551
    jWToolKit := jWToolKitClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18552
                performStatic: #'getDefaultToolkit()Ljava/awt/Toolkit;'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18553
    jEvents do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18554
        :jEv | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18555
        jEv instVarNamed: 'source' put: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18556
        jEv instVarNamed: 'consumed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18557
        eventConsumed ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18558
            "/ the first gets the original event as data
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18559
            jEv instVarNamed: 'data' put: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18560
            eventConsumed := true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18561
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18562
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18563
        "/ post it (them) to the event queue
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18564
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18565
        EventTrace == true ifTrue: [ 'postEvent to Java ...' printCR. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18566
        jWToolKit "class" perform: #'postEvent(Ljava/awt/AWTEvent;)V' with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18567
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18568
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18570
    "Created: / 6.1.1998 / 20:36:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18571
    "Modified: / 10.12.1998 / 19:36:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18572
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18574
!JavaVM::Reflection class methodsFor:'instance creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18576
for: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18577
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18578
    ^self new setVM: aJavaVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18580
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18581
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18583
new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18584
    "return an initialized instance"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18585
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18586
    ^ self basicNew initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18587
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18589
!JavaVM::Reflection methodsFor:'debugging'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18591
returnNilIfMissing
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18592
    ^ returnNilIfMissing.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18594
    "Created: / 28-01-2011 / 15:14:37 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18595
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18597
returnNilIfMissing:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18598
    returnNilIfMissing:= aBoolean.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18600
    "Created: / 28-01-2011 / 15:25:35 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18601
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18603
!JavaVM::Reflection methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18604
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18605
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18606
    constantPoolMapping := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18607
    javaClasses := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18608
    javaArrayClasses := IdentityDictionary new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18609
    realMethods := OrderedCollection new.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18610
    javaMethodsPerMethod := Dictionary new
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18611
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18612
    "Created: / 21-12-2010 / 19:46:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18613
    "Modified: / 09-02-2011 / 00:24:28 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18614
    "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
 18615
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18617
setVM: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18619
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18620
    itself, not its instance)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18622
    vm := aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18624
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18625
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18627
!JavaVM::Reflection methodsFor:'reflection - classes'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18628
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18629
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18630
    ^javaArrayClasses at: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18631
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18632
    "Created: / 05-07-2012 / 23:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18633
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 18634
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18635
classForJavaClassObject: aJavaClassObject 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18636
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18637
        Given an instance of java.lang.Class, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18638
        real (Java) class associated with it. The instance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18639
        of java.lang.Class should be first created by myself
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18640
        (by sending #javaClassObjectForClass:)"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18641
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18642
    (javaClasses at: aJavaClassObject ifAbsent: [ 123 ]) 
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 18643
        == (JavaVM classNamed: 'stx/libjava/tests/junir/JUnit3Tests') 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18644
            ifTrue: [ self breakPoint: #jv ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18645
    ^ javaClasses at: aJavaClassObject
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18646
        ifAbsent: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18647
            vm internalError: 'No class associated with given java.lang.Class!!'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18648
            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18649
            "/Please, no nils
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18650
            
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18651
            self returnNilIfMissing ifTrue: nil
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18652
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18654
    "Created: / 28-01-2011 / 15:22:39 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18655
    "Modified: / 05-02-2011 / 20:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 18656
    "Modified: / 21-10-2011 / 13:41:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18657
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18658
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18659
javaClassObjectArrayForClasses: classes 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18660
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18661
        Answers an instance of java.lang.Class[] for given
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18662
        real (Java) classes."
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18663
    
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18664
    | array |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18665
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18666
    array := (vm classForName: 'java.lang.Class') javaArrayClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18667
                new: classes size.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18668
    classes isNilOrEmptyCollection ifTrue: [ ^ array ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18669
    classes 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18670
        withIndexDo: [:cls :idx | array at: idx put: (self javaClassObjectForClass: cls) ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18671
    ^ array
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18672
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18673
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18674
    "Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18675
    "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18676
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18677
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18678
javaClassObjectForClass:aClass 
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18679
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18680
    ^self javaClassObjectForClass:aClass init: true.
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18681
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18682
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18683
    "Modified: / 12-08-2011 / 19:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18684
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18685
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18686
javaClassObjectForClass: aClass init: init 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18687
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18688
        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
 18689
        real (Java) class."
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18690
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18691
    | javaClassObj |
1030
9f87a1830611 fixed bug in java registry and we BOOT :)
hlopkmar
parents: 1029
diff changeset
 18692
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18693
    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
 18694
    self assert: aClass ~~ Array
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18695
        message: 'aClass should not be Array (old impl)'.
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
 18696
    javaClasses at: aClass ifPresent: [:javaClassObj | ^ javaClassObj ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18697
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18698
    "/ 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
 18699
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18700
    false ifTrue: [ aClass isJavaClass ifTrue: [ aClass classInit ]. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18701
    javaClassObj := (vm classForName: 'java.lang.Class') new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18702
    self rememberJavaClassObject: javaClassObj for: aClass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 18703
    ^ javaClassObj
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18705
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 18706
    "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
 18707
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18708
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18709
javaClassObjectForClassNamed: className 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18710
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18711
        Answers an instance of java.lang.Class for given
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18712
        (java) class name. The className may be name of primitive
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18713
        type, i.e. 'int', 'double'."
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18714
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18715
    | cls |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18716
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18717
    cls := JavaDescriptor baseTypesByTypeName at: className
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18718
                ifAbsent: [ vm classForName: className ].
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 18719
    ^ self javaClassObjectForClass: cls.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18720
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18721
    "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
 18722
    "Modified: / 08-04-2011 / 14:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18723
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18724
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18725
rememberJavaClassObject: jclass for: class
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18726
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18727
    javaClasses at: class put: jclass.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18728
    javaClasses at: jclass put: class.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18729
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18730
    "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
 18731
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18733
!JavaVM::Reflection methodsFor:'reflection - constant pool'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18734
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18735
constantPoolFor:javaConstantPoolObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18736
    ^ constantPoolMapping at:javaConstantPoolObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18737
        ifAbsent:[self error:'Given ConstantPool was not created by JVM']
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18739
    "Created: / 21-12-2010 / 19:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18740
    "Modified: / 28-01-2011 / 14:56:54 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18741
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18743
javaConstantPoolObjectFor: aConstantPool
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18745
    ^constantPoolMapping at: aConstantPool ifAbsent:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18746
        [| javaConstantPoolObject |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18747
        javaConstantPoolObject := (vm classForName:'sun.reflect.ConstantPool') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18748
        constantPoolMapping at: aConstantPool put: javaConstantPoolObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18749
        constantPoolMapping at: javaConstantPoolObject put: aConstantPool.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18750
        javaConstantPoolObject]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18752
    "Created: / 21-12-2010 / 19:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18753
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18755
!JavaVM::Reflection methodsFor:'reflection - methods & ctors'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18757
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18758
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18759
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18761
    | jCtor |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18762
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18763
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18765
    jCtor := (Java classForName:'java.lang.reflect.Constructor') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18766
    self javaMethodObjectLikeSlotsInto: jCtor forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18767
    self rememberJavaMethodObject: jCtor for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18769
    ^ jCtor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18771
    "Created: / 09-02-2011 / 10:28:12 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18772
    "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
 18773
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18775
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18776
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18777
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18778
     | jMethod |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18779
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18780
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18782
    jMethod := (Java classForName:'java.lang.reflect.Method') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18783
    self javaMethodObjectLikeSlotsInto: jMethod forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18784
    self rememberJavaMethodObject: jMethod for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18786
    jMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18787
        instVarNamed: #name       put: (self javaStringObjectForString: (method selector upTo:$() interned: true);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18788
        instVarNamed: #returnType put: (method descriptor returnClassObject);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18789
        instVarNamed: #annotationDefault put: (method annotations default bytes);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18791
        yourself.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18793
    ^jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18795
    "Created: / 09-02-2011 / 10:29:46 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18796
    "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
 18797
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18798
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18799
javaMethodObjectLikeSlotsInto: jMethod forMethod: method 
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18800
    "
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18801
       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
 18802
       java.lang.Constructor"
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18803
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18804
    | desc |
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18805
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18806
    desc := method descriptor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18807
    jMethod
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18808
        instVarNamed: #clazz put: (self javaClassObjectForClass: method javaClass);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18809
        instVarNamed: #slot put: 0;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18810
        instVarNamed: #modifiers put: method accessFlags;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18811
        instVarNamed: #parameterTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18812
            put: (self javaClassObjectArrayForClasses: desc parameterClasses);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18813
        instVarNamed: #exceptionTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18814
            put: (self javaClassObjectArrayForClasses: method javaExceptionTable);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 18815
        instVarNamed: #annotations put: (method annotations runtimeVisible bytes);
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18816
        yourself.
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18817
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18818
    method signature notNil ifTrue:[
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18819
        jMethod                 
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18820
            instVarNamed: #signature
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18821
            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
 18822
    ].
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 18823
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18824
    ^ jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18826
    "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
 18827
    "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
 18828
    "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
 18829
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18830
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18831
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18832
     "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18833
      it."
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18834
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18835
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18836
    slot := constructor instVarNamed: #slot.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18837
    ^realMethods at: slot ifAbsent:[self error: 'No ctor found for java ctor object'].
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18838
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18839
"/    |class signature|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18840
"/    class := self classForJavaClassObject:(constructor instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18841
"/    signature := Java as_ST_String:(constructor instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18842
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18843
"/        mthd signature = signature ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18844
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18845
"/        ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18846
"/    ].
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18847
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18848
    "Created: / 09-02-2011 / 10:36:07 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18849
    "Modified: / 05-12-2011 / 10:04:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18850
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18851
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18852
methodForJavaMethodObject:jmethod 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18853
     "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18854
         Given an instance of java.lang.reflect.Method, answers
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18855
         real method associated with it. 
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18856
    "
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18857
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18858
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18859
    slot := jmethod instVarNamed: #slot.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18860
    ^realMethods at: slot ifAbsent:[self error: 'No method found for java method object'].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18861
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18862
"/    |class name signature |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18863
"/
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18864
"/    class := self classForJavaClassObject:(aJavaMethodObject instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18865
"/    name := Java as_ST_String:(aJavaMethodObject instVarNamed:#name).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18866
"/    signature := Java as_ST_String:(aJavaMethodObject instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18867
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18868
"/        (mthd name = name and:[mthd signature = signature]) ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18869
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18870
"/        ]
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 18871
"/    ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18872
"/    self assert: false description: 'No such method, malformed java.lang.reflect.Method object?'.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18873
"/    ^nil.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 18874
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18875
    "Created: / 09-02-2011 / 10:32:14 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18876
    "Modified: / 05-12-2011 / 10:05:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18877
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18878
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18879
rememberJavaMethodObject: jmethod for: method
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18880
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18881
    javaMethodsPerMethod at: method put: jmethod.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18882
    realMethods add: method.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18883
    jmethod instVarNamed: #slot put: realMethods size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18884
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 18885
    "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
 18886
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18888
!JavaVM::Reflection methodsFor:'reflection - other'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18889
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18890
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18891
    ^ self javaStringObjectForString: string interned: false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18893
    "Created: / 09-02-2011 / 10:34:57 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18894
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18896
javaStringObjectForString:string interned:intern  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18897
    | s |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18898
    s := Java as_String: string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18899
    ^intern ifTrue:[Java intern: s] ifFalse:[s]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18901
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18902
    "Created: / 09-02-2011 / 10:34:29 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18903
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18905
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18906
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18907
version
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 18908
    ^ '$Id$'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18909
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18910
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18911
version_CVS
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
 18912
    ^ '§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
 18913
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 18914
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18915
version_SVN
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 18916
    ^ '$Id$'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18917
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18918
924
7e66564a2302 fix for native sun.reflect.NativeMethodAccessorImpl.invoke0()
vranyj1
parents: 923
diff changeset
 18919
JavaVM initialize!