JavaVM.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 05 Feb 2013 16:04:34 +0100
branchdevelopment
changeset 2022 2e657a7a758b
parent 1989 131b7459fdab
child 2023 ce075b5d052f
permissions -rw-r--r--
Changed #assert:description to #assert:message: (the first one in compatibility extension)
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
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    35
		OpenFileTableLock CachedNativeMethodTable ExceptionDebug
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    36
		ExitDebug JavaConsoleStream StandardThreadGroup
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    37
		EnteredMonitorsPerProcess AcquiredMonitorsPerProcess JavaMethods
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    38
		DUMMY_LONG_HIGHWORD DUMMY_DOUBLE_HIGHWORD NoAudio
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    39
		FirstWindowCreationSemaphore PermittedDirectories
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    40
		PermittedHostConnects SimulatedOS O_WGgraphics_originX
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    41
		O_WGgraphics_originY O_WGgraphics_pData O_FramePeer_pNativeWidget
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    42
		O_FramePeer_pData ImageStretchCache LastGraphics LastGC
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    43
		EnteredMonitorObject EnteredMonitorObjectCount
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    44
		EnteredMonitorProcess LeftMonitorObject JavaEventThread
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    45
		JavaScreenUpdaterThread JavaEventQueueThread SystemProperties
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    46
		ExceptionDebugPatterns NullPointerExceptionDebug
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    47
		DivisionByZeroExceptionDebug IOExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    48
		StdinReplacementFileQuerySignal AssertionsEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    49
		SimulatedNativeMemory Reflection ZipCache ZipEntryCache
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
    50
		ZipLastModTimesCache ZipInflaters JavaPrivilegedAccessQuery
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    51
		ClassRegistry SystemClassLoader ExtClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    52
		SmalltalkClassLoader StartupTime FinalizationEnabled
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    53
		FinalizationLobby ParkUnparkSemaphores ThreadInterrupts
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    54
		EagerResolvingEnabled OldspaceIncreased PerfCounters
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    55
		AboutToSnapshotAction SnapshotFinishedAction'
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
    56
	poolDictionaries:'JavaConstants'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    57
	category:'Languages-Java-Support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    58
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    59
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    60
Object subclass:#Performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    61
	instanceVariableNames:'vm'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    62
	classVariableNames:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    63
	poolDictionaries:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    64
	privateIn:JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    65
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    66
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    67
Object subclass:#Reflection
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    68
	instanceVariableNames:'vm constantPoolMapping javaClasses javaArrayClasses
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    69
		javaMethodsPerMethod returnNilIfMissing realMethods'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    70
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    71
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    72
	privateIn:JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    73
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    74
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    75
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    76
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    77
copyright
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    78
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    79
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    80
1155
vranyj1
parents: 1152
diff changeset
    81
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    82
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    83
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    84
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    85
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    86
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    87
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    88
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    89
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    90
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    91
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    92
1155
vranyj1
parents: 1152
diff changeset
    93
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    94
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    95
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    96
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    97
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    98
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    99
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   101
documentation
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   102
"Runtime support and environment for Java.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   103
You shouldn't communicate with JavaVM directly,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
use Java class instead. JavaVM is layer between
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
the native interpret and the rest of the system.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   106
JavaVM implements native java virtual machine
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   107
methods called by interpret, hides java primitive
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   108
types handling, and gives the ST world ways to
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   109
control class loading and reflection"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   112
nativeMethods
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   113
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   114
    all native methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   115
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   116
        JavaMethod allSubInstances select:[:m |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   117
            m isNative
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   118
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   120
    implemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   122
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   123
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   125
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   126
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   127
                JavaVM class implements:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   128
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   129
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   130
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   131
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   133
    unimplemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   135
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   136
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   138
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   139
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   140
                (JavaVM class implements:sel) not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   141
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   142
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   143
            ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   144
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   146
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   147
    list of all native methods as in jdk1.1.3:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   148
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   149
      X - implemented
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   150
      * - implemented to be validated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   151
      x - implemented with limited functionality
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   152
      o - implemented as dummy (no functionality)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   154
    X (Math::double sin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   155
    X (Math::double cos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   156
    X (Math::double tan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   157
    X (Math::double asin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   158
    X (Math::double acos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   159
    X (Math::double atan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   160
    X (Math::double exp (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   161
    X (Math::double log (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   162
    X (Math::double sqrt (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   163
      (Math::double IEEEremainder (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   164
    X (Math::double ceil (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   165
    X (Math::double floor (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   166
      (Math::double rint (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   167
      (Math::double atan2 (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   168
    X (Math::double pow (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   170
    X (Class::java.lang.Class forName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   171
    X (Class::java.lang.Object newInstance ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   172
    * (Class::boolean isInstance (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   173
    X (Class::boolean isAssignableFrom (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   174
    X (Class::boolean isInterface ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   175
      (Class::boolean isArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   176
    X (Class::boolean isPrimitive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   177
    X (Class::java.lang.String getName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   178
    X (Class::java.lang.ClassLoader getClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   179
    X (Class::java.lang.Class getSuperclass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   180
      (Class::java.lang.Class[] getInterfaces ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   181
      (Class::java.lang.Class getComponentType ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   182
      (Class::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   183
      (Class::java.lang.Object[] getSigners ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   184
      (Class::void setSigners (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   185
    X (Class::java.lang.Class getPrimitiveClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   186
      (Class::java.lang.reflect.Field getField0 (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   187
      (Class::java.lang.reflect.Field[] getFields0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   188
    X (Class::java.lang.reflect.Method getMethod0 (java.lang.String java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   189
    X (Class::java.lang.reflect.Method[] getMethods0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   190
      (Class::java.lang.reflect.Constructor[] getConstructors0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   191
      (Class::java.lang.reflect.Constructor getConstructor0 (java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   193
    X (InetAddressImpl::java.lang.String getLocalHostName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   194
    X (InetAddressImpl::void makeAnyLocalAddress (java.net.InetAddress))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   195
    X (InetAddressImpl::byte[][] lookupAllHostAddr (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   196
      (InetAddressImpl::java.lang.String getHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   197
    X (InetAddressImpl::int getInetFamily ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   199
    X (ResourceBundle::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   201
    X (System::void setIn0 (java.io.InputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   202
    X (System::void setOut0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   203
    X (System::void setErr0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   204
    X (System::long currentTimeMillis ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   205
    X (System::void arraycopy (java.lang.Object int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   206
    X (System::int identityHashCode (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   207
    X (System::java.util.Properties initProperties (java.util.Properties))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   209
    X (Thread::java.lang.Thread currentThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   210
    X (Thread::void yield ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   211
    X (Thread::void sleep (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   212
    X (Thread::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   213
    X (Thread::boolean isInterrupted (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   214
    X (Thread::boolean isAlive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   215
      (Thread::int countStackFrames ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   216
    X (Thread::void setPriority0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   217
    X (Thread::void stop0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   218
    X (Thread::void suspend0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
    X (Thread::void resume0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
    * (Thread::void interrupt0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
      (String::java.lang.String intern ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
    X (Float::int floatToIntBits (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
    X (Float::float intBitsToFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
      (ObjectStreamClass::int getClassAccess (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
      (ObjectStreamClass::java.lang.String[] getMethodSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
      (ObjectStreamClass::int getMethodAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
      (ObjectStreamClass::java.lang.String[] getFieldSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
      (ObjectStreamClass::int getFieldAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
      (ObjectStreamClass::java.io.ObjectStreamField[] getFields0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
      (ObjectStreamClass::long getSerialVersionUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
      (ObjectStreamClass::boolean hasWriteObject (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
      (ObjectInputStream::java.lang.Class loadClass0 (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
      (ObjectInputStream::void inputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
      (ObjectInputStream::java.lang.Object allocateNewObject (java.lang.Class java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   238
      (ObjectInputStream::java.lang.Object allocateNewArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   239
      (ObjectInputStream::boolean invokeObjectReader (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   241
      (SecurityManager::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
    X (SecurityManager::java.lang.ClassLoader currentClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
      (SecurityManager::int classDepth (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
    X (SecurityManager::int classLoaderDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
      (SecurityManager::java.lang.Class currentLoadedClass0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
    X (ClassLoader::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
    X (ClassLoader::java.lang.Class defineClass0 (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
    X (ClassLoader::void resolveClass0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
    X (ClassLoader::java.lang.Class findSystemClass0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
    X (ClassLoader::java.io.InputStream getSystemResourceAsStream0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
      (ClassLoader::java.lang.String getSystemResourceAsName0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
    X (FileDescriptor::boolean valid ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
      (FileDescriptor::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
    X (FileDescriptor::java.io.FileDescriptor initSystemFD (java.io.FileDescriptor int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
    X (Object::java.lang.Class getClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
    X (Object::int hashCode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
    X (Object::java.lang.Object clone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
    X (Object::void notify ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
    X (Object::void notifyAll ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
    X (Object::void wait (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
    X (FileOutputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
    X (FileOutputStream::void openAppend (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
    X (FileOutputStream::void write (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
    X (FileOutputStream::void writeBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
    X (FileOutputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
    X (FileInputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
    X (FileInputStream::int read ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
    X (FileInputStream::int readBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
      (FileInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
    X (FileInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
    X (FileInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
      (VM::int getState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
      (VM::boolean threadsSuspended ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
      (VM::void unsuspendThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
      (VM::void unsuspendSomeThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
    X (File::boolean exists0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
    X (File::boolean canWrite0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
    X (File::boolean canRead0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
    X (File::boolean isFile0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
    X (File::boolean isDirectory0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
    X (File::long lastModified0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
    X (File::long length0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
    X (File::boolean mkdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
    X (File::boolean renameTo0 (java.io.File))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
    X (File::boolean delete0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
      (File::boolean rmdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
    X (File::java.lang.String[] list0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
      (File::java.lang.String canonPath (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
    X (File::boolean isAbsolute ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   297
      (ObjectOutputStream::void outputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   298
      (ObjectOutputStream::boolean invokeObjectWriter (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   300
    X (Throwable::void printStackTrace0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   301
    X (Throwable::java.lang.Throwable fillInStackTrace ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   303
    X (Double::long doubleToLongBits (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   304
    X (Double::double longBitsToDouble (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   305
    X (Double::double valueOf0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   307
    X (Runtime::void exitInternal (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   308
    o (Runtime::void runFinalizersOnExit0 (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   309
    o (Runtime::java.lang.Process execInternal (java.lang.String[] java.lang.String[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   310
    X (Runtime::long freeMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   311
    X (Runtime::long totalMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   312
    X (Runtime::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   313
      (Runtime::void runFinalization ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   314
      (Runtime::void traceInstructions (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   315
      (Runtime::void traceMethodCalls (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   316
    X (Runtime::java.lang.String initializeLinkerInternal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   317
    X (Runtime::java.lang.String buildLibName (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   318
    X (Runtime::int loadFileInternal (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   320
      (WDrawingSurfaceInfo::int lock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   321
      (WDrawingSurfaceInfo::void unlock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   322
      (WDrawingSurfaceInfo::int getHWnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   323
      (WDrawingSurfaceInfo::int getHBitmap ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   324
      (WDrawingSurfaceInfo::int getPBits ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   325
      (WDrawingSurfaceInfo::int getHDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   326
      (WDrawingSurfaceInfo::int getDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   327
      (WDrawingSurfaceInfo::int getHPalette ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   329
    X (WDefaultFontCharset::boolean canConvert (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   331
      (ColorModel::void deletepData ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   332
    X (WToolkit::void init (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   333
    X (WToolkit::void eventLoop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   334
      (WToolkit::java.awt.image.ColorModel makeColorModel ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   335
    X (WToolkit::int getScreenResolution ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   336
    X (WToolkit::int getScreenWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   337
    X (WToolkit::int getScreenHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   338
      (WToolkit::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   339
    * (WToolkit::void beep ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   340
    X (WToolkit::void loadSystemColors (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   342
      (WPrintJob::void end ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   344
    X (WDialogPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   345
    X (WDialogPeer::void _show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   346
    X (WDialogPeer::void _hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   348
    X (WWindowPeer::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   349
    X (WWindowPeer::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   350
    X (WWindowPeer::void _setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   351
    X (WWindowPeer::void _setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   352
    X (WWindowPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   353
    o (WWindowPeer::void updateInsets (java.awt.Insets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   354
      (WWindowPeer::java.awt.Component getContainerElement (java.awt.Container int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   356
    X (WCanvasPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   357
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   358
    X (WTextAreaPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   359
    X (WTextAreaPeer::void insertText (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   360
      (WTextAreaPeer::void replaceText (java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   362
    X (WTextComponentPeer::java.lang.String getText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   363
    X (WTextComponentPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   364
    X (WTextComponentPeer::int getSelectionStart ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   365
    X (WTextComponentPeer::int getSelectionEnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   366
    X (WTextComponentPeer::void select (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   367
    X (WTextComponentPeer::void enableEditing (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   369
    X (WComponentPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   370
    X (WComponentPeer::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   371
    X (WComponentPeer::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   372
    X (WComponentPeer::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   373
    X (WComponentPeer::java.awt.Point getLocationOnScreen ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   374
    X (WComponentPeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   375
    o (WComponentPeer::void handleEvent (java.awt.AWTEvent))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   376
    o (WComponentPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   377
    X (WComponentPeer::void _setForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   378
    X (WComponentPeer::void _setBackground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   379
    o (WComponentPeer::void setFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   380
    o (WComponentPeer::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   381
    o (WComponentPeer::void setCursor (java.awt.Cursor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   382
    o (WComponentPeer::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   383
      (WComponentPeer::void _beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   384
      (WComponentPeer::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   385
    o (WComponentPeer::void setZOrderPosition (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   387
    X (WFramePeer::void setMenuBar0 (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   388
    X (WFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   389
    X (WFramePeer::void _setIconImage (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   391
    o (WFontMetrics::boolean needsConversion (java.awt.Font sun.awt.FontDescriptor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   392
    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
   393
      (WFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   394
      (WFontMetrics::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   396
    o (WChoicePeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   397
    o (WChoicePeer::void remove (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   398
    o (WChoicePeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   399
    X (WChoicePeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   400
    X (WChoicePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   402
    X (WLabelPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   403
    o (WLabelPeer::void setAlignment (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   404
    X (WLabelPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   405
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   406
    X (WMenuItemPeer::void _setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   407
    X (WMenuItemPeer::void create (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   408
    X (WMenuItemPeer::void enable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   409
    o (WMenuItemPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   410
      (WMenuPeer::void addSeparator ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   411
      (WMenuPeer::void delItem (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   412
    X (WMenuPeer::void createMenu (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   413
      (WMenuPeer::void createSubMenu (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   415
      (WPopupMenuPeer::void createMenu (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   416
      (WPopupMenuPeer::void _show (java.awt.Event))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   417
      (WMenuBarPeer::void addMenu (java.awt.Menu))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   418
      (WMenuBarPeer::void delMenu (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   419
    X (WMenuBarPeer::void create (sun.awt.windows.WFramePeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   421
      (WCheckboxMenuItemPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   423
    X (WFileDialogPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   425
    X (WCheckboxPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   426
    X (WCheckboxPeer::void setCheckboxGroup (java.awt.CheckboxGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   427
      (WCheckboxPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   428
    X (WCheckboxPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   430
    X (WClipboard::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   431
      (WClipboard::void setClipboardText (java.awt.datatransfer.StringSelection))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   432
      (WClipboard::java.lang.String getClipboardText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   434
    X (WListPeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   435
    X (WListPeer::void delItems (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   436
    X (WListPeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   437
      (WListPeer::void deselect (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   438
      (WListPeer::void makeVisible (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   439
    X (WListPeer::void setMultipleSelections (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   440
    X (WListPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   441
    X (WListPeer::boolean isSelected (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   443
    x (WScrollbarPeer::void _setValues (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   444
    x (WScrollbarPeer::void setLineIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   445
    x (WScrollbarPeer::void setPageIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   446
    x (WScrollbarPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   448
    x (ImageRepresentation::void offscreenInit (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   449
    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
   450
    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
   451
    x (ImageRepresentation::boolean finish (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   452
    X (ImageRepresentation::void imageDraw (java.awt.Graphics int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   453
    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
   454
    x (ImageRepresentation::void disposeImage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   456
    X (WTextFieldPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   457
    X (WTextFieldPeer::void setEchoCharacter (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   459
    X (WScrollPanePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   460
    o (WScrollPanePeer::int getOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   461
      (WScrollPanePeer::void setInsets ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   462
      (WScrollPanePeer::void setScrollPosition (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   463
    x (WScrollPanePeer::int _getHScrollbarHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   464
    x (WScrollPanePeer::int _getVScrollbarWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   465
    o (WScrollPanePeer::void setSpans (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   466
      (WScrollPanePeer::java.awt.Component getScrollChild ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   468
      (WEmbeddedFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   469
    X (WButtonPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   470
    X (WButtonPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   472
    x (WColor::java.awt.Color getDefaultColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   474
    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
   475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   476
    x (WGraphics::void createFromComponent (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   477
    x (WGraphics::void createFromGraphics (sun.awt.windows.WGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   478
      (WGraphics::void createFromPrintJob (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   479
      (WGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   480
    x (WGraphics::void imageCreate (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   481
    x (WGraphics::void pSetFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   482
    X (WGraphics::void pSetForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   483
      (WGraphics::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   484
    x (WGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   485
    x (WGraphics::void setPaintMode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   486
    x (WGraphics::void setXORMode (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   487
    o (WGraphics::java.awt.Rectangle getClipBounds ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   488
    o (WGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   489
      (WGraphics::void removeClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   490
    X (WGraphics::void clearRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   491
    X (WGraphics::void fillRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   492
    X (WGraphics::void drawRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   493
      (WGraphics::void drawSFChars (char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   494
    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
   495
      (WGraphics::int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   496
      (WGraphics::void drawBytes (byte[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   497
    X (WGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   498
    X (WGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   499
    o (WGraphics::void drawRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   500
    o (WGraphics::void fillRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   501
    X (WGraphics::void drawPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   502
      (WGraphics::void drawPolyline (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   503
    X (WGraphics::void fillPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   504
    x (WGraphics::void drawOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   505
    x (WGraphics::void fillOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   506
    x (WGraphics::void drawArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   507
    x (WGraphics::void fillArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   508
      (WGraphics::void print (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   509
      (WGraphics::void close (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   510
      (JPEGImageDecoder::void readImage (java.io.InputStream byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   511
    o (OffScreenImageSource::void sendPixels ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   514
    additional native methods added by microsoft (sigh):
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   516
    X (java.lang.String::boolean equals (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   517
    X (java.lang.String::int length (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   518
    o (java.lang.Runtime::void setInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   519
    o (java.lang.Runtime::void setOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   521
      (java.lang.String::int compareTo (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   522
      (java.lang.String::boolean equalsIgnoreCase (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   523
      (java.lang.String::int indexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   524
      (java.lang.String::boolean startsWith (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   525
      (java.lang.String::boolean regionMatches (int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   526
      (java.lang.String::boolean regionMatches (boolean int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   527
      (java.lang.String::int lastIndexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   528
      (java.lang.ClassLoader::void resolveClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   530
      (java.lang.ClassLoader::java.lang.Class createArrayClass (java.lang.String java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   531
      (java.io.PrintStream::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   532
      (java.lang.Runtime::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   533
      (java.lang.Runtime::boolean isInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   534
      (java.lang.ThreadGroup::void initMainThreadGroup0 (java.lang.ThreadGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   535
      (java.lang.System::void validateSecurityManager (java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   536
      (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
   537
      (java.io.ObjectOutputStream::void invokeDefaultWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   538
      (java.io.ObjectOutputStream::void invokeWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   539
      (java.io.ObjectInputStream::void invokeDefaultReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   540
      (java.io.ObjectInputStream::void invokeReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   541
      (java.util.TimeZone::java.util.TimeZone getWin32TimeZone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   542
      (java.net.InetAddress::java.lang.Object[] lookupHostByName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   543
      (java.net.InetAddress::java.lang.Object[] lookupHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   544
      (java.io.ObjectStreamClass::void doMismatchedRead (java.io.ObjectInputStream java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   545
      (java.io.ObjectStreamClass::long getClassDefinedUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   546
      (java.io.ObjectStreamClass::boolean findObjectMethod0 (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   547
      (java.lang.reflect.Method::java.lang.String getDescriptor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   548
      (java.lang.reflect.Array::void setShort (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   549
      (java.lang.reflect.Array::char getChar (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   550
      (java.lang.reflect.Array::void setChar (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   551
      (java.lang.reflect.Array::void setDouble (java.lang.Object int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   552
      (java.lang.reflect.Array::java.lang.Object get (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   553
      (java.lang.reflect.Array::void set (java.lang.Object int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   554
      (java.lang.reflect.Array::int getInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   555
      (java.lang.reflect.Array::void setInt (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   556
      (java.lang.reflect.Array::java.lang.Object multiNewArray (java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   557
      (java.lang.reflect.Array::boolean getBoolean (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   558
      (java.lang.reflect.Array::byte getByte (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   559
      (java.lang.reflect.Array::float getFloat (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   560
      (java.lang.reflect.Array::void setBoolean (java.lang.Object int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   561
      (java.lang.reflect.Array::long getLong (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   562
      (java.lang.reflect.Array::void setByte (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   563
      (java.lang.reflect.Array::void setLong (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   564
      (java.lang.reflect.Array::void setFloat (java.lang.Object int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   565
      (java.lang.reflect.Array::java.lang.Object newArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   566
      (java.lang.reflect.Array::int getLength (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   567
      (java.lang.reflect.Array::unsigned short getShort (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   568
      (java.lang.reflect.Array::double getDouble (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   569
      (java.lang.reflect.Field::void setShort (java.lang.Object unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   570
      (java.lang.reflect.Field::char getChar (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   571
      (java.lang.reflect.Field::void setChar (java.lang.Object char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   572
      (java.lang.reflect.Field::void setDouble (java.lang.Object double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   573
      (java.lang.reflect.Field::java.lang.Object get (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   574
      (java.lang.reflect.Field::void set (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   575
      (java.lang.reflect.Field::int getInt (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   576
      (java.lang.reflect.Field::void setInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   577
      (java.lang.reflect.Field::boolean getBoolean (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   578
      (java.lang.reflect.Field::byte getByte (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   579
      (java.lang.reflect.Field::float getFloat (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   580
      (java.lang.reflect.Field::long getLong (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   581
      (java.lang.reflect.Field::void setBoolean (java.lang.Object boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   582
      (java.lang.reflect.Field::void setByte (java.lang.Object byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   583
      (java.lang.reflect.Field::void setLong (java.lang.Object long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   584
      (java.lang.reflect.Field::void setFloat (java.lang.Object float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   585
      (java.lang.reflect.Field::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   586
      (java.lang.reflect.Field::unsigned short getShort (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   587
      (java.lang.reflect.Field::double getDouble (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   588
      (java.lang.reflect.Constructor::java.lang.Object newInstance (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   589
      (java.lang.reflect.Constructor::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   590
      (java.util.zip.Inflater::void setDictionary0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   591
      (java.util.zip.Inflater::int getTotalIn0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   592
      (java.util.zip.Inflater::void reset0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   593
      (java.util.zip.Inflater::void end0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   594
      (java.util.zip.Inflater::int inflate0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   595
      (java.util.zip.Inflater::int getTotalOut0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   596
      (java.util.zip.Inflater::int getAdler0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   597
      (java.util.zip.CRC32::void update1 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   598
      (java.util.zip.CRC32::void update (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   600
      (com.ms.security.PolicyEngine::boolean isSystemClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   601
      (com.ms.security.PolicyEngine::void denyPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   602
      (com.ms.security.PolicyEngine::void revertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   603
      (com.ms.security.PolicyEngine::void initPolicyEngine ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   604
      (com.ms.security.PolicyEngine::java.lang.Class _getClassOfCaller (java.lang.Class[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   605
      (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
   606
      (com.ms.security.PolicyEngine::com.ms.security.PermissionDataSet getPermissionsOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   607
      (com.ms.security.PolicyEngine::void assertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   608
      (com.ms.security.PolicyEngine::void deepCheck (com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   609
      (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
   610
      (com.ms.security.PolicyEngine::java.security.Principal getPrincipalOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   611
      (com.ms.security.permissions.ThreadPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   612
      (com.ms.security.permissions.ThreadPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   613
      (com.ms.security.permissions.RegistryPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   614
      (com.ms.security.permissions.RegistryPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   615
      (com.ms.security.management.ZonePermissions::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   616
      (com.ms.security.management.ZonePermissions::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   617
      (com.ms.security.permissions.UIPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   618
      (com.ms.security.permissions.UIPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   619
      (com.ms.security.permissions.NetIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   620
      (com.ms.security.permissions.NetIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   621
      (com.ms.security.permissions.ReflectionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   622
      (com.ms.security.permissions.ReflectionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   623
      (com.ms.vm.WeakReference::void storeRef (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   624
      (com.ms.vm.WeakReference::int allocRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   625
      (com.ms.vm.WeakReference::void freeRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   626
      (com.ms.vm.WeakReference::java.lang.Object fetchRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   627
      (com.ms.dll.DllLib::void CoTaskMemFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   628
      (com.ms.dll.DllLib::void CopyWithDstOffset (int float[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   629
      (com.ms.dll.DllLib::void CopyWithDstOffset (int double[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   630
      (com.ms.dll.DllLib::int numParamBytes0 (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   631
      (com.ms.dll.DllLib::void CopyWithDstOffset (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   632
      (com.ms.dll.DllLib::void write2 (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   633
      (com.ms.dll.DllLib::void write2 (int int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   634
      (com.ms.dll.DllLib::void write2 (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   635
      (com.ms.dll.DllLib::void write2 (int int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   636
      (com.ms.dll.DllLib::int GlobalAlloc (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   637
      (com.ms.dll.DllLib::void resize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   638
      (com.ms.dll.DllLib::long read8 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   639
      (com.ms.dll.DllLib::long read8 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   640
      (com.ms.dll.DllLib::int lstrcpy (java.lang.StringBuffer int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   641
      (com.ms.dll.DllLib::int lstrlenA (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   642
      (com.ms.dll.DllLib::int read4 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   643
      (com.ms.dll.DllLib::int CoTaskMemAlloc (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   644
      (com.ms.dll.DllLib::void write8 (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   645
      (com.ms.dll.DllLib::int sizeOf0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   646
      (com.ms.dll.DllLib::int getSystemDefaultCharSize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   647
      (com.ms.dll.DllLib::void write8 (int int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   648
      (com.ms.dll.DllLib::int read4 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   649
      (com.ms.dll.DllLib::byte read1 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   650
      (com.ms.dll.DllLib::byte read1 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   651
      (com.ms.dll.DllLib::int lstrlen (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   652
      (com.ms.dll.DllLib::void CopyMemoryAnsi (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   653
      (com.ms.dll.DllLib::void CopyMemoryAnsi (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   654
      (com.ms.dll.DllLib::boolean isStruct (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   655
      (com.ms.dll.DllLib::boolean GlobalFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   656
      (com.ms.dll.DllLib::void internalAttemptCopyPtrToStruct (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   657
      (com.ms.dll.DllLib::int getLastError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   658
      (com.ms.dll.DllLib::void write4 (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   659
      (com.ms.dll.DllLib::void write4 (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   660
      (com.ms.dll.DllLib::unsigned short read2 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   661
      (com.ms.dll.DllLib::unsigned short read2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   662
      (com.ms.dll.DllLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   663
      (com.ms.dll.DllLib::void write1 (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   664
      (com.ms.dll.DllLib::void write1 (int int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   665
      (com.ms.dll.DllLib::boolean isStructCls (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   666
      (com.ms.dll.DllLib::void prelink (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   667
      (com.ms.dll.DllLib::void CopyMemoryUni (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   668
      (com.ms.dll.DllLib::void CopyMemoryUni (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   669
      (com.ms.dll.DllLib::void internalAttemptCopyStructToPtr (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   670
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   671
      (com.ms.dll.DllLib::void CopyWithSrcOffset (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   672
      (com.ms.dll.DllLib::void CopyWithSrcOffset (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   673
      (com.ms.dll.DllLib::void CopyWithSrcOffset (unsigned short[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   674
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   675
      (com.ms.dll.DllLib::void CopyWithSrcOffset (long[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   676
      (com.ms.dll.DllLib::void CopyWithSrcOffset (float[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   677
      (com.ms.dll.DllLib::void CopyWithSrcOffset (double[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   678
      (com.ms.dll.DllLib::void CopyWithSrcOffset (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   679
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   680
      (com.ms.dll.DllLib::int lstrlenW (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   681
      (com.ms.dll.DllLib::void CopyWithDstOffset (int byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   682
      (com.ms.dll.DllLib::void CopyWithDstOffset (int char[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   683
      (com.ms.dll.DllLib::void CopyWithDstOffset (int unsigned short[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   684
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   685
      (com.ms.dll.DllLib::void CopyWithDstOffset (int long[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   686
      (com.ms.dll.DllLib::int internalGetStructAddr (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   687
      (com.ms.dll.DllLib::int offsetOf (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   688
      (com.ms.dll.DllLib::int lstrcpy (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   689
      (com.ms.dll.DllLib::int sizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   690
      (com.ms.lang.RegKey::com.ms.lang.RegKeyEnumValue pRegEnumValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   691
      (com.ms.lang.RegKey::java.lang.String pRegQueryStringValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   692
      (com.ms.lang.RegKey::byte[] pRegQueryBinaryValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   693
      (com.ms.lang.RegKey::int pRegQueryIntValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   694
      (com.ms.lang.RegKey::void pRegSetStringValue (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   695
      (com.ms.lang.RegKey::void pRegSetIntValue (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   696
      (com.ms.lang.RegKey::void pRegSetBinaryValue (java.lang.String byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   697
      (com.ms.lang.RegKey::void pRegDeleteValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   698
      (com.ms.lang.RegKey::void pRegFlushKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   699
      (com.ms.lang.RegKey::void pRegDeleteKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   700
      (com.ms.lang.RegKey::void pRegOpenBaseKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   701
      (com.ms.lang.RegKey::void pRegOpenKey (com.ms.lang.RegKey java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   702
      (com.ms.lang.RegKey::int pRegQueryInfoKey (com.ms.lang.RegQueryInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   703
      (com.ms.lang.RegKey::void pRegUnLoadKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   704
      (com.ms.lang.RegKey::void pRegCreateKey (com.ms.lang.RegKey java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   705
      (com.ms.lang.RegKey::void pRegRestoreKey (java.lang.String boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   706
      (com.ms.lang.RegKey::void pRegLoadKey (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   707
      (com.ms.lang.RegKey::void pRegCloseKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   708
      (com.ms.lang.RegKey::java.lang.String pRegEnumKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   709
      (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
   710
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayouts (int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   711
      (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
   712
      (com.ms.awt.peer.NativeServices::int getColourDataDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   713
      (com.ms.awt.peer.NativeServices::java.lang.String pGetFontEnumeratedFamily (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   714
      (com.ms.awt.peer.NativeServices::int pNewFontEnumeration ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   715
      (com.ms.awt.peer.NativeServices::int getScreenClipRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   716
      (com.ms.awt.peer.NativeServices::int pSetKeyboardLayout (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   717
      (com.ms.awt.peer.NativeServices::void ClipboardInit (com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   718
      (com.ms.awt.peer.NativeServices::void getDeviceCaps (int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   719
      (com.ms.awt.peer.NativeServices::void getAfcMetrics (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   720
      (com.ms.awt.peer.NativeServices::void setUserLocale (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   721
      (com.ms.awt.peer.NativeServices::void getDCDI (com.ms.awt.peer.DirectColourDataInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   722
      (com.ms.awt.peer.NativeServices::int pGetNumKeyboardLayouts ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   723
      (com.ms.awt.peer.NativeServices::void getIndexedColours (byte[] byte[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   724
      (com.ms.awt.peer.NativeServices::int getNativeFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   725
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayout ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   726
      (com.ms.awt.peer.NativeServices::int getSystemLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   727
      (com.ms.awt.peer.NativeServices::void caretSetPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   728
      (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
   729
      (com.ms.awt.peer.NativeServices::java.lang.String ClipboardGetText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   730
      (com.ms.awt.peer.NativeServices::int systemMetric (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   731
      (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
   732
      (com.ms.awt.peer.NativeServices::void caretHide (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   733
      (com.ms.awt.peer.NativeServices::int chooseColor (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   734
      (com.ms.awt.peer.NativeServices::java.lang.String pGetKeyboardLayoutName (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   735
      (com.ms.awt.peer.NativeServices::int matchFontAndLanguage (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   736
      (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
   737
      (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
   738
      (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
   739
      (com.ms.awt.peer.NativeServices::void caretDispose (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   740
      (com.ms.awt.peer.NativeServices::void caretShow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   741
      (com.ms.awt.peer.NativeServices::void deleteObject (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   742
      (com.ms.awt.peer.NativeServices::void setDebugOutput (com.ms.awt.peer.COMPrintCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   743
      (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
   744
      (com.ms.awt.peer.NativeServices::int getSystemColourValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   745
      (com.ms.awt.peer.NativeServices::void caretCreate (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   746
      (com.ms.awt.peer.NativeServices::void ClipboardSetText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   747
      (com.ms.awt.peer.NativeServices::void println (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   748
      (com.ms.security.SecurityClassLoader::boolean getSecureState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   749
      (com.ms.security.SecurityClassLoader::void setSecureState (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   750
      (com.ms.security.SecurityClassLoader::java.lang.Class internalDefineClass (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   751
      (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
   752
      (com.ms.security.SecurityClassLoader::java.util.Hashtable getHashTable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   753
      (com.ms.security.auditing.SecurityAuditor::boolean isThreadAuditingEnabled ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   754
      (com.ms.security.auditing.SecurityAuditor::void disableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   755
      (com.ms.security.auditing.SecurityAuditor::void enableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   756
      (com.ms.security.auditing.SecurityAuditor::void initSecurityAuditor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   757
      (com.ms.security.PermissionDataSet::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   758
      (com.ms.security.PermissionDataSet::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   759
      (com.ms.lang.SystemX::int pAnsiToUnicode (byte[] char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   760
      (com.ms.lang.SystemX::int pQueryUnicodeToAnsi (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   761
      (com.ms.lang.SystemX::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   762
      (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
   763
      (com.ms.lang.SystemX::int pUnicodeToAnsi (char[] byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   764
      (com.ms.lang.SystemX::boolean isLocalCharDBCSLeadByte (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   765
      (com.ms.lang.SystemX::int pQueryAnsiToUnicode (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   766
      (com.ms.lang.SystemX::boolean isBaseDBCS ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   767
      (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
   768
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetSigner (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   769
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetCapabilities (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   770
      (com.ms.com._Guid::void IIDFromString (java.lang.String com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   771
      (com.ms.com._Guid::java.lang.String StringFromIID (com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   772
      (com.ms.security.auditing.PrintStreamAuditor::int GetModuleHandle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   773
      (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
   774
      (com.ms.security.permissions.CustomPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   775
      (com.ms.security.permissions.CustomPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   776
      (com.ms.security.permissions.X509Signer::boolean pLoad (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   777
      (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
   778
      (com.ms.packagemanager.PackageManager::java.lang.Object nativeGetPackage (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   779
      (com.ms.packagemanager.PackageManager::java.lang.String[] nativeGetBeansList ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   780
      (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
   781
      (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
   782
      (com.ms.security.permissions.UserFileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   783
      (com.ms.security.permissions.UserFileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   784
      (com.ms.security.permissions.PropertyPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   785
      (com.ms.security.permissions.PropertyPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   786
      (com.ms.security.permissions.ClientStoragePermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   787
      (com.ms.security.permissions.ClientStoragePermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   788
      (com.ms.security.permissions.ExecutionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   789
      (com.ms.security.permissions.ExecutionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   790
      (com.ms.util.EventLog::boolean DeregisterEventSource (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   791
      (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
   792
      (com.ms.util.EventLog::int RegisterEventSource (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   793
      (com.ms.applet.BrowserAppletFrame::void signalViewChange (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   794
      (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
   795
      (com.ms.applet.BrowserAppletFrame::void showSystemStatus (int int boolean java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   796
      (com.ms.applet.BrowserAppletFrame::com.ms.security.management.SecurityPolicy getSecurityPolicy0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   797
      (com.ms.applet.BrowserAppletFrame::void setDownloadState (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   798
      (com.ms.applet.BrowserAppletFrame::int GetSystemDefaultLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   799
      (com.ms.applet.BrowserAppletFrame::void requestResize (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   800
      (com.ms.applet.BrowserAppletFrame::void signalObjectLoadDone (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   801
      (com.ms.applet.BrowserAppletFrame::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   802
      (com.ms.applet.BrowserAppletFrame::void showStatus0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   803
      (com.ms.applet.BrowserAppletFrame::boolean checkGlobalOfflineMode0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   804
      (com.ms.applet.BrowserAppletFrame::void showDocument0 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   805
      (com.ms.security.permissions.SystemStreamsPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   806
      (com.ms.security.permissions.SystemStreamsPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   807
      (com.ms.security.permissions.FileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   808
      (com.ms.security.permissions.FileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   809
      (com.ms.com.ComLib::int newGCHandle (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   810
      (com.ms.com.ComLib::java.lang.Object derefGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   811
      (com.ms.com.ComLib::void dprinthelper (char[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   812
      (com.ms.com.ComLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   813
      (com.ms.com.ComLib::int jcdwClassSizeOf (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   814
      (com.ms.com.ComLib::int jcdwOffsetOf (java.lang.Object java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   815
      (com.ms.com.ComLib::int jcdwClassOffsetOf (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   816
      (com.ms.com.ComLib::boolean isJavaOwned (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   817
      (com.ms.com.ComLib::void brk (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   818
      (com.ms.com.ComLib::void setDataWrapperSize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   819
      (com.ms.com.ComLib::void brk (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   820
      (com.ms.com.ComLib::void setJCDWHomeThread (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   821
      (com.ms.com.ComLib::void propagateOwnership (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   822
      (com.ms.com.ComLib::void threadStartMTA (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   823
      (com.ms.com.ComLib::void IENVNextMarshalerJ2C (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   824
      (com.ms.com.ComLib::boolean supportsInterface (java.lang.Object com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   825
      (com.ms.com.ComLib::java.lang.Object ptrToStruct (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   826
      (com.ms.com.ComLib::int jcdwSizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   827
      (com.ms.com.ComLib::void declareMessagePumpThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   828
      (com.ms.com.ComLib::void IENVNextMarshalerC2J (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   829
      (com.ms.com.ComLib::void freeGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   830
      (com.ms.com.ComLib::boolean isEqualUnknown (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   831
      (com.ms.com.Dispatch::boolean NIsArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   832
      (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
   833
      (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
   834
      (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
   835
      (com.ms.com.Variant::int toInt ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   836
      (com.ms.com.Variant::double toDate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   837
      (com.ms.com.Variant::boolean toBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   838
      (com.ms.com.Variant::double toDouble ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   839
      (com.ms.com.Variant::long toCurrency ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   840
      (com.ms.com.Variant::void putVariantArray (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   841
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   842
      (com.ms.com.Variant::void putByteArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   843
      (com.ms.com.Variant::void putShortRef (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   844
      (com.ms.com.Variant::void putIntRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   845
      (com.ms.com.Variant::void putDoubleRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   846
      (com.ms.com.Variant::void putDateRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   847
      (com.ms.com.Variant::void putStringRef (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   848
      (com.ms.com.Variant::unsigned short getShortRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   849
      (com.ms.com.Variant::int getIntRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   850
      (com.ms.com.Variant::double getDoubleRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   851
      (com.ms.com.Variant::double getDateRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   852
      (com.ms.com.Variant::java.lang.String getStringRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   853
      (com.ms.com.Variant::java.lang.String internalToString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   854
      (com.ms.com.Variant::void initSafeArrayByRef (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   855
      (com.ms.com.Variant::java.lang.Object toCharArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   856
      (com.ms.com.Variant::java.lang.Object toDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   857
      (com.ms.com.Variant::byte toByte ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   858
      (com.ms.com.Variant::java.lang.Object getDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   859
      (com.ms.com.Variant::void putDispatch (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   860
      (com.ms.com.Variant::boolean getBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   861
      (com.ms.com.Variant::int toError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   862
      (com.ms.com.Variant::java.lang.Object toObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   863
      (com.ms.com.Variant::void initSafeArrayByVal (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   864
      (com.ms.com.Variant::java.lang.Object getObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   865
      (com.ms.com.Variant::void putObject (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   866
      (com.ms.com.Variant::com.ms.com.SafeArray toSafeArrayHelper (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   867
      (com.ms.com.Variant::void putFloatRef (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   868
      (com.ms.com.Variant::void putCurrencyRef (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   869
      (com.ms.com.Variant::void putErrorRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   870
      (com.ms.com.Variant::void putBooleanRef (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   871
      (com.ms.com.Variant::void putObjectRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   872
      (com.ms.com.Variant::void putByteRef (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   873
      (com.ms.com.Variant::java.lang.String getString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   874
      (com.ms.com.Variant::void putString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   875
      (com.ms.com.Variant::float getFloatRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   876
      (com.ms.com.Variant::long getCurrencyRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   877
      (com.ms.com.Variant::int getErrorRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   878
      (com.ms.com.Variant::boolean getBooleanRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   879
      (com.ms.com.Variant::java.lang.Object getObjectRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   880
      (com.ms.com.Variant::byte getByteRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   881
      (com.ms.com.Variant::float toFloat ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   882
      (com.ms.com.Variant::void putCharArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   883
      (com.ms.com.Variant::void putDispatchRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   884
      (com.ms.com.Variant::java.lang.Object getDispatchRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   885
      (com.ms.com.Variant::void putVariantArrayRef (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   886
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArrayRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   887
      (com.ms.com.Variant::void changeType (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   888
      (com.ms.com.Variant::void ncloneIndirect (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   889
      (com.ms.com.Variant::void nFinalize (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   890
      (com.ms.com.Variant::void nclone (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   891
      (com.ms.com.Variant::unsigned short toShort ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   892
      (com.ms.com.Variant::void putSafeArrayRefHelper (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   893
      (com.ms.com.Variant::com.ms.com.Variant[] toVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   894
      (com.ms.com.Variant::java.lang.Object toByteArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   895
      (com.ms.com.Variant::void TrueVariantClear ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   896
      (com.ms.awt.WToolkit::boolean MessageBeep (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   897
      (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
   898
      (com.ms.applet.AppletPanel::void securedCall0 (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   899
      (com.ms.applet.AppletPanel::com.ms.security.PermissionSet getDefaultPermissionsFromLoader (com.ms.vm.loader.URLClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   900
      (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
   901
      (com.ms.awt.WGuiCallback::boolean SetEvent (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   902
      (com.ms.awt.WGuiCallback::int CreateSemaphore (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   903
      (com.ms.awt.WGuiCallback::int ReleaseSemaphore (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   904
      (com.ms.awt.WGuiCallback::void userYield (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   905
      (com.ms.awt.WGuiCallback::int MsgWaitForMultipleObjects (int int[] boolean int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   906
      (com.ms.awt.WGuiCallback::int CreateEvent (int boolean boolean int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   907
      (com.ms.activeX.ActiveXToolkit::int GetSysColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   908
      (com.ms.awt.peer.NativeGraphics::void setPageDimension (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   909
      (com.ms.awt.peer.NativeGraphics::void setBkColour (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   910
      (com.ms.awt.peer.NativeGraphics::void getClipBounds (com.ms.awt.peer.NativeRect int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   911
      (com.ms.awt.peer.NativeGraphics::void pGetCharOutline (int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   912
      (com.ms.awt.peer.NativeGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   913
      (com.ms.awt.peer.NativeGraphics::void setXORMode (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   914
      (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
   915
      (com.ms.awt.peer.NativeGraphics::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   916
      (com.ms.awt.peer.NativeGraphics::void drawArc (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   917
      (com.ms.awt.peer.NativeGraphics::void getInitialPageDimension (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   918
      (com.ms.awt.peer.NativeGraphics::void setVisRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   919
      (com.ms.awt.peer.NativeGraphics::void pSetForeground (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   920
      (com.ms.awt.peer.NativeGraphics::int pGetDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   921
      (com.ms.awt.peer.NativeGraphics::void drawPixels (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   922
      (com.ms.awt.peer.NativeGraphics::void drawPolygon (int[] int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   923
      (com.ms.awt.peer.NativeGraphics::void createFromImage (com.ms.awt.peer.INativeImage))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   924
      (com.ms.awt.peer.NativeGraphics::void endPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   925
      (com.ms.awt.peer.NativeGraphics::int pGetCharOutlineSize (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   926
      (com.ms.awt.peer.NativeGraphics::void pDrawBezier (int int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   927
      (com.ms.awt.peer.NativeGraphics::int drawBytes (byte[] int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   928
      (com.ms.awt.peer.NativeGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   929
      (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
   930
      (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
   931
      (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
   932
      (com.ms.awt.peer.NativeGraphics::void endPrintJob ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   933
      (com.ms.awt.peer.NativeGraphics::void pSetOrigin (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   934
      (com.ms.awt.peer.NativeGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   935
      (com.ms.awt.peer.NativeGraphics::void drawOval (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   936
      (com.ms.awt.peer.NativeGraphics::int pSetFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   937
      (com.ms.awt.peer.NativeGraphics::void setPaintMode (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   938
      (com.ms.awt.peer.NativeGraphics::void startPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   939
      (com.ms.awt.peer.NativeGraphics::void clearClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   940
      (com.ms.awt.peer.NativeGraphics::void createFromCopy (com.ms.awt.peer.INativeGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   941
      (com.ms.awt.peer.NativeGraphics::void scanLines (int int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   942
      (com.ms.awt.peer.NativeGraphics::void drawRoundRect (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   943
      (com.ms.awt.peer.NativeGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   944
      (com.ms.awt.peer.NativeGraphics::void clearRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   945
      (com.ms.awt.peer.NativeGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   946
      (com.ms.awt.peer.NativeGraphics::void createFromWindow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   947
      (com.ms.awt.peer.NativeGraphics::void drawPolyline (int[] int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   948
      (com.ms.awt.peer.NativeGraphics::void drawRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   949
      (com.ms.awt.peer.CToolkit::void callbackEventLoop (com.ms.awt.peer.IToolkitCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   950
      (com.ms.awt.peer.CToolkit::int getToolkitHwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   951
      (com.ms.awt.peer.CToolkit::int createCompHwnd (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   952
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionFont (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   953
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   954
      (com.ms.awt.peer.CNativeSystemIME::void setOpenStatus (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   955
      (com.ms.awt.peer.CNativeSystemIME::int getOpenStatus (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   956
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   957
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionResultString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   958
      (com.ms.net.wininet.WininetStreamHandlerFactory::int initNative (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   959
      (com.ms.com.SafeArray::void rawGetVariantAs (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   960
      (com.ms.com.SafeArray::void NSafeArrayInit (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   961
      (com.ms.com.SafeArray::float rawGetDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   962
      (com.ms.com.SafeArray::void NRawBoolCopyToJavaArray (int int boolean[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   963
      (com.ms.com.SafeArray::void validateArray (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   964
      (com.ms.com.SafeArray::void NSafeArrayCreateFromString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   965
      (com.ms.com.SafeArray::void rawSetString (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   966
      (com.ms.com.SafeArray::int getInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   967
      (com.ms.com.SafeArray::void setInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   968
      (com.ms.com.SafeArray::boolean getBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   969
      (com.ms.com.SafeArray::void setBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   970
      (com.ms.com.SafeArray::int computeOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   971
      (com.ms.com.SafeArray::void NSafeArrayNullInit ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   972
      (com.ms.com.SafeArray::void rawSetVariant (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   973
      (com.ms.com.SafeArray::float rawGetFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   974
      (com.ms.com.SafeArray::float getFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   975
      (com.ms.com.SafeArray::void setFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   976
      (com.ms.com.SafeArray::int computeOffset2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   977
      (com.ms.com.SafeArray::void rawSetDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   978
      (com.ms.com.SafeArray::java.lang.String asString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   979
      (com.ms.com.SafeArray::void NRawCopyToJavaArray (int int java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   980
      (com.ms.com.SafeArray::void NSafeArrayCreate (int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   981
      (com.ms.com.SafeArray::void NRawBoolCopyFromJavaArray (boolean[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   982
      (com.ms.com.SafeArray::void NSafeArrayDestroy (boolean boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   983
      (com.ms.com.SafeArray::int NSafeArrayCopy ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   984
      (com.ms.com.SafeArray::int rawGetInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   985
      (com.ms.com.SafeArray::boolean rawGetBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   986
      (com.ms.com.SafeArray::void rawSetFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   987
      (com.ms.com.SafeArray::java.lang.String rawGetString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   988
      (com.ms.com.SafeArray::int NTotalNumElems ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   989
      (com.ms.com.SafeArray::double getDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   990
      (com.ms.com.SafeArray::void setDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   991
      (com.ms.com.SafeArray::void Nreinit (com.ms.com.SafeArray))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   992
      (com.ms.com.SafeArray::int getPhysicalSafeArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   993
      (com.ms.com.SafeArray::int NgetdwordAt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   994
      (com.ms.com.SafeArray::void NRawCopyFromJavaArray (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   995
      (com.ms.com.SafeArray::void rawSetBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   996
      (com.ms.com.SafeArray::void rawSetInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   997
      (com.ms.awt.peer.CNativeComponent::void invalidate (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   998
      (com.ms.awt.peer.CNativeComponent::void hideModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   999
      (com.ms.awt.peer.CNativeComponent::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1000
      (com.ms.awt.peer.CNativeComponent::void setOnTop (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1001
      (com.ms.awt.peer.CNativeComponent::void registerDragDrop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1002
      (com.ms.awt.peer.CNativeComponent::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1003
      (com.ms.awt.peer.CNativeComponent::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1004
      (com.ms.awt.peer.CNativeComponent::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1005
      (com.ms.awt.peer.CNativeComponent::void setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1006
      (com.ms.awt.peer.CNativeComponent::void getBounds (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1007
      (com.ms.awt.peer.CNativeComponent::int gethwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1008
      (com.ms.awt.peer.CNativeComponent::void showModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1009
      (com.ms.awt.peer.CNativeComponent::void setCursor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1010
      (com.ms.awt.peer.CNativeComponent::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1011
      (com.ms.awt.peer.CNativeComponent::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1012
      (com.ms.awt.peer.CNativeComponent::void callDefWindowProc (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1013
      (com.ms.awt.peer.CNativeComponent::void registerCustomDropTarget (com.ms.com.IUnknown))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1014
      (com.ms.awt.peer.CNativeComponent::void setNoActivate (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1015
      (com.ms.awt.peer.CNativeComponent::void getPlaceOnScreen (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1016
      (com.ms.awt.peer.CNativeComponent::void beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1017
      (com.ms.awt.peer.CNativeComponent::void clippedReshape (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1018
      (com.ms.awt.peer.CNativeComponent::void setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1019
      (com.ms.awt.peer.CNativeComponent::void setIcon (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1020
      (com.ms.awt.peer.CNativeComponent::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1021
      (com.ms.awt.peer.CNativeComponent::void setFrameHost (com.ms.awt.peer.IBrowserAppletFrameCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1022
      (com.ms.awt.peer.CNativeComponent::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1023
      (com.ms.awt.peer.CNativeComponent::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1024
      (com.ms.awt.peer.CNativeComponent::void updateInsets (com.ms.awt.peer.NativeInsets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1025
      (com.ms.awt.peer.CNativeComponent::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1026
      (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
  1027
      (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
  1028
      (com.ms.awt.peer.CNativeComponent::void beginDrag (com.ms.awt.peer.INativeDragCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1029
      (com.ms.fx.RegionConverter::int computeNativeRegion (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1030
      (com.ms.fx.RegionConverter::int[] computeJavaRegion (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1031
      (com.ms.net.wininet.URLUtils::java.lang.String canonicalizeURL (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1032
      (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
  1033
      (com.ms.awt.peer.NativeFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1034
      (com.ms.awt.peer.NativeFontMetrics::int stringWidth (java.lang.String int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1035
      (com.ms.awt.peer.NativeFontMetrics::int charsWidth (char[] int int int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1036
      (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
  1037
      (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
  1038
      (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
  1039
      (com.ms.security.management.SecurityZone::byte[] pLoadCustomPermissions (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1040
      (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
  1041
      (com.ms.awt.peer.NativeImage::void create (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1042
      (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
  1043
      (com.ms.awt.peer.NativeImage::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1044
      (com.ms.awt.peer.NativeImage::int getIcon (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1045
      (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
  1046
      (com.ms.awt.peer.NativeImage::void sendPixels (com.ms.awt.peer.SPData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1047
      (com.ms.awt.peer.NativeImage::void fillPixels (com.ms.awt.peer.SPData byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1048
      (com.ms.awt.peer.NativeImage::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1049
      (com.ms.awt.peer.NativeImage::void init (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1050
      (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
  1051
      (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
  1052
      (com.ms.awt.peer.NativeImage::int finish (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1053
      (com.ms.awt.peer.NativeImage::void imageDraw (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1054
      (com.ms.awt.peer.NativeResource::java.lang.String loadString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1055
      (com.ms.awt.peer.NativeResource::int openDialogFromID (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1056
      (com.ms.awt.peer.NativeResource::boolean attach (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1057
      (com.ms.awt.peer.NativeResource::void loadBytes (int int java.lang.String byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1058
      (com.ms.awt.peer.NativeResource::int getSize (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1059
      (com.ms.awt.peer.NativeResource::void detach ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1060
      (com.ms.awt.peer.NativeResource::int openDialogFromName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1061
      (com.ms.net.wininet.WininetURLConnection::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1062
      (com.ms.com.DispatchProxy::void finalize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1063
      (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
  1064
      (com.ms.net.wininet.WininetInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1065
      (com.ms.net.wininet.WininetInputStream::int read (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1066
      (com.ms.net.wininet.WininetInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1067
      (com.ms.net.wininet.WininetInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1068
      (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
  1069
      (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
  1070
      (com.ms.net.wininet.http.HttpInputStream::byte[] getResponseHeaders ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1071
      (com.ms.net.wininet.http.HttpInputStream::void close0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1072
      (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
  1073
      (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
  1074
      (com.ms.vm.loader.CabCracker::void getBytes0 (int int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1075
      (com.ms.vm.loader.CabCracker::void cleanup ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1076
      (com.ms.vm.loader.CabCracker::int GetTempPath (int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1077
      (com.ms.vm.loader.CabCracker::void load0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1080
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1081
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1082
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1083
performance1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1084
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1085
     JAVA::BenchMark new loopmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1086
     JAVA::BenchMark new logicmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1087
     JAVA::BenchMark new sievemark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1088
     JAVA::BenchMark new methodmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1089
     JAVA::BenchMark new stringmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1090
     JAVA::BenchMark new newstringmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1091
     JAVA::BenchMark new neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1094
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1095
"
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1096
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1097
 linux:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1098
   P6/233 No JIT                 84         87        90          40          22                                       17              10
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1099
                      103       133        142       137          28          73       109    167     18    140
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1101
   P6/233 JIT                   479       2459       393         649          28                                       21              12
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1102
   P6/233 JIT         473      1805       3046       439         986          28                                       21              12
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1103
                      533      1808       3382       613        1003          25       105    143      1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1104
                      668      3330       3644       740
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1105
                      793      4116       3731      1243        1365         120       103     79      2
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1106
                      914      4480       4061                  2290          68       106    158     19     34
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1107
                      941      4607       4149      1238        2434          75       101    152     18     32
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1108
                                                                             591              164
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1109
                     1087                           1836                     800       110                   35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1110
                     1102      4592       4270      1844        2381         841       109    169     21     35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1111
                     1177      4608       4309      1810        2432         895       532    182     20     35
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1114
 w95
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1115
   P5/200 JIT          90        95         90        95         686          18        60     54      7
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1116
                      428      1657       2385       684         957          21        61     62      9
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1117
                      541      2886       2589       823         976          18        62     55      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1118
                      583      3062       2635       842         861         223        65     57      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1119
                      616      3075       2438      1081        1324         218        64     54      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1120
                      718      3138       2755      1085        1200         816        63     48      9      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1121
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1122
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1123
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1124
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1126
performance2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1127
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1128
     symantec benchmarks
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1131
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1132
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1133
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1134
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1135
   ST/X+J Linux
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1136
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1137
   No JIT          352767         354597         69585    43048  101638  28961 108839  48815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1138
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1139
   ST/X+J Linux
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1140
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1141
   JIT             128724         116810         20259    39733   83160  27613  52093  33166  43996  545554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1142
		   124744         101428         17239    10052    8264  14004  38821  23252  33709  374660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1143
   +IINC           120324                                  7265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1144
   +IADD op2       100173          90737         18128     6996    7423  17093  48559  44209  57056  390374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1145
   +ISUB op2                       90460         17547             5921                       57056  390461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1146
   +ICMPEQ/NE       99785          90147                           5792                43482  56486  388255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1147
   +ICMP            87398          78214         15784     7574    5628  12812  38481  24654  32252  302797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1148
   +IFICMPLE        84198          74928         13814     5650          11674         23241         293118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1149
   +IFICMPxx        76867          69738         12208                          37505  21973  32104  273569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1150
   +IFICMPEQ/NE                                                    5580  11202         21723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1151
   const IFICMPxx                                11856             5463  11032  37372                272726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1152
   +lea for add/sub
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1153
   +BALOAD                                       11700     4600    5015   9431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1154
   +BASTORE                                                3279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1155
   +CALOAD/CASTORE                                                        8907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1156
   regSave change   66119          60365          9997             4917  15386  37851  38202  50027  286497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1157
		    64858          58360          9476             4889  15001  37211  36288  48313  278478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1158
		    63146          55949          9302                   14899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1159
		    62970          56085          9352     3226    4837   8779  37573  22815  33899  241297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1160
   -O               43662          40292          7181     2530    4696   8170  34555  22116  32337  195539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1162
   +IALOAD          39162          36347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1163
   +IASTORE         32461          30663          4299             3667                19556  30563  166868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1165
   -IALOAD/IASTORE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1166
										34167  19347
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1167
										       19232  29726
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1168
										       18821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1169
   +AALOAD/BALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1170
		    41490          39527          6776     3315    4077   8443  33895  19152  28018  184693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1171
		    41291          37034          6593                          32682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1172
   +ATHROW                                                                6449                       180079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1173
   +IASTORE         38848          35601          6219             3796   6122         17869  30085  175106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1174
   IINC delayed code
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1175
   +ANEWARRAY                                              3263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1176
   +LADD/LSUB const 38719          35256                                  6062  27071                172859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1178
							   2837                 22835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1179
   +ISTORE into arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1180
									  3080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1181
   quick L2I for ints                                                     2774  21184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1182
   +*ASTORE / *ALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1183
    again                                                  1621    3654   1525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1184
   +CHECKCAST                                                      3574                       25810
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1185
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1186
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1187
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1188
   ST/X+J Win95
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1189
   200Mhz P5
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1190
   JIT              78490          77060         15220     4840    6370   9180  73160  36080         351700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1191
				   76900         13560             5500   9010         35200         348600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1192
										66080         69920  370750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1193
   +IADD non consts 76620          73210         13180     3790                 63550         58880  356900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1194
											      51740
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1195
		    77390          72450         12520     3900    6040   8950  62450  34330  57780  335810
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1196
		    77220          71950                           5270   8840                       338650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1197
		    72390          70690                                                      48010  327370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1198
		    74910          66740         11420                    8620  61730  33340  47350  313940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1199
   +xALOAD/JMP_ZERO
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1200
		    71740                                  2800
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1201
		    71460          65250         11540     2750                 62180  33840  50750  311660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1202
   +LCMP                                                                        59100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1203
   better abs(I)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1204
   +xALOAD/IF_ICMPx 66130          61520         12080     3300    5280   8190  56510  33830  50310  297150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1205
   elim dummy static                                               5210                       48270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1206
   methods                                                                                    44160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1207
		   119020         112440         19330     3070    4560   2640  56960  37730  52790  408540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1208
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1209
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1212
   Sun JDK         274625         244461         52676    50653   65183  26668  78133  28572  61608  882583
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1213
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1215
   Microsoft J++     9684           8452          2874     1733    3535   3665   3836   4746  25717   64242
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1216
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1218
   Symantec Cafe    14541          12198          3686     1922    4527   3325   3425  12969  26829   83422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1219
   JIT 1.02
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1220
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1222
   Symantec Cafe     8292           6970          2714     1613    3345   3235   2013   4516  13180   45878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1223
   JIT 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1224
   (90Mhz P5)
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::BubbleSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1231
   b perform:#'setData(JJ)V' with:10000 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
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1239
   b := JAVA::QSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1240
   b perform:#'setData(JJ)V' with:500000 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
       b 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::Tree 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
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1257
   t := JAVA::Array new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1258
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1259
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1260
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1261
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1262
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1264
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1266
!JavaVM class methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1267
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1268
boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1269
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1270
    Java initialize.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1271
    self initializeVM.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1272
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1273
    "Created: / 21-02-2012 / 18:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1274
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1275
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1276
compile:source selector:smalltalkSelector asJavaMethod:javaSelector fakedSource:fakedSource in:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1277
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1279
    |cloneCode|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1281
    (aClass implements:javaSelector) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1282
        Class packageQuerySignal answer:'__temporary__'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1283
        do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1284
            aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1285
                compile:source
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1286
                classified:'java support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1287
                logged:false.
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
        cloneCode := aClass compiledMethodAt:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1291
        cloneCode source:fakedSource.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1293
        Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1294
            aClass removeSelector:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1295
            aClass addSelector:javaSelector withMethod:cloneCode.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1296
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1297
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1299
    "Created: / 5.11.1998 / 19:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1300
    "Modified: / 5.11.1998 / 19:37:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1301
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1303
deinitialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1304
    StandardThreadGroup := nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1305
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1306
    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
  1307
        KnownWindows do: [:v | v isTopView ifTrue: [ v destroy ] ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1308
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1309
    JavaWindowGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1310
    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
  1311
    OpenFileTable := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1312
    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
  1313
    SystemClassLoader := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1315
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1316
     JavaVM deinitialize"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1318
    "Created: / 03-01-1998 / 21:28:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1319
    "Modified: / 03-12-1998 / 20:33:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1320
    "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
  1321
    "Modified: / 16-11-2011 / 09:46:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1324
deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1325
    "deinstall additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1327
    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1328
        #'clone()Ljava/lang/Object;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1329
        #'equals(Ljava/lang/Object;)Z'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1330
        #'toString()Ljava/lang/String;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1331
        #'getClass()Ljava/lang/Class;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1332
     ) do:[:sel |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1333
        (Object implements:sel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1334
            Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1335
                Object removeSelector:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1336
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1337
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1338
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1340
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1341
     self deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1342
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1344
    "Created: / 4.2.1998 / 21:37:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1345
    "Modified: / 5.12.1998 / 15:27:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1346
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1347
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1348
flushClasses
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1349
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1350
    ClassRegistry notNil ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1351
        ClassRegistry flush
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1352
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1353
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1354
    "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
  1355
!
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1356
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1357
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1358
    DUMMY_LONG_HIGHWORD := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1359
    DUMMY_DOUBLE_HIGHWORD := 2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1360
    StandardThreadGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1361
    NoAudio := true.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1362
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1363
    "/ NoAudio := false.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1364
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
  1365
    JavaConsoleStream := "Transcript"Stdout.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1366
    FullExceptionTrace := StackTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1367
    WindowOPTrace := DrawOPTrace := EventTrace := ThreadTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1368
    MonitorTrace := ExceptionTrace := FileOpenTrace := FileIOTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1369
    ExceptionDebug := ExitDebug := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1370
    ExceptionDebugPatterns := Set new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1371
    WindowCreationTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1372
    FileOpenConfirmation := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1373
    SocketConnectConfirmation := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1374
    WindowOPTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1375
    MonitorTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1376
    ThreadTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1377
    UnhandledJavaExceptionSignal := (Signal new) mayProceed: true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1378
    UnhandledJavaExceptionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1379
        message: #unhandledJavaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1380
    UnhandledJavaExceptionSignal notifierString: 'unhandled java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1381
    JavaExceptionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1382
    JavaExceptionSignal nameClass: self message: #javaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1383
    JavaExceptionSignal notifierString: 'java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1384
    UnimplementedInstructionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1385
    UnimplementedInstructionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1386
        message: #unimplementedInstructionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1387
    UnimplementedInstructionSignal notifierString: 'unimplemented instruction'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1388
    UnimplementedNativeMethodSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1389
    UnimplementedNativeMethodSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1390
        message: #unimplementedNativeMethodSignal.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1391
    UnimplementedNativeMethodSignal
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1392
        notifierString: 'unimplemented native method'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1393
    BadMessageSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1394
    BadMessageSignal nameClass: self message: #badMessageSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1395
    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
  1396
    InternalErrorSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1397
    InternalErrorSignal nameClass: self message: #internalErrorSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1398
    InternalErrorSignal notifierString: 'internal error'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1399
    CallHandlerSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1400
    CallHandlerSignal nameClass: self message: #callHandlerSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1401
    CallHandlerSignal notifierString: 'internal signal'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1402
    StdinReplacementFileQuerySignal := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1403
    StdinReplacementFileQuerySignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1404
        message: #stdinReplacementFileQuerySignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1405
    StdinReplacementFileQuerySignal notifierString: 'asking for stdin stream'.
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1406
    JavaPrivilegedAccessQuery := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1407
    JavaPrivilegedAccessQuery defaultAnswer: false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1408
    AssertionsEnabled := true.
1069
d5d204ceb991 JavaVM: Added ClassRegistry initialization into JavaVM>>initialize
vranyj1
parents: 1063
diff changeset
  1409
    ClassRegistry := JavaClassRegistry new.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1410
    FinalizationEnabled := true.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1411
    EagerResolvingEnabled := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1412
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1413
    ObjectMemory addDependent: self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1414
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1415
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1416
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1417
     JavaVM initialize"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  1418
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1419
    "Created: / 02-01-1998 / 18:02:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1420
    "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
  1421
    "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
  1422
    "Modified: / 08-12-2011 / 21:06:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1423
    "Modified: / 17-08-2012 / 11:16:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1424
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1425
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1426
initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1427
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1429
    "/ since we use smalltalk Arrays for JavaArray, some
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1430
    "/ additional (java-) protocol is required.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1431
    "/ This is also useful, when Smalltalk objects are passed to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1432
    "/ java ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1433
    "/ We should implement all of the java.lang.Object protocol in
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1434
    "/ Object, to be on the bright side of life; more of this later ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1436
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1437
        compile:'__clone
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1438
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1439
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1440
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1441
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1443
    ^ self shallowCopy'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1444
        selector:#'__clone'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1445
        asJavaMethod:#'clone()Ljava/lang/Object;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1446
        fakedSource:'#''clone()Ljava/lang/Object;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1447
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1448
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1449
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1450
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1452
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1453
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1455
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1457
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1458
        compile:'__equals:arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1459
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1460
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1461
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1462
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1464
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1465
        selector:#'__equals:'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1466
        asJavaMethod:#'equals(Ljava/lang/Object;)Z'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1467
        fakedSource:'#''equals(Ljava/lang/Object;)Z''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1468
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1469
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1470
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1471
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1473
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1474
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1476
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1478
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1479
        compile:'__toString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1480
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1481
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1482
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1483
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1485
    ^ Java as_String:(self displayString)'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1486
        selector:#'__toString'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1487
        asJavaMethod:#'toString()Ljava/lang/String;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1488
        fakedSource:'#''toString()Ljava/lang/String;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1489
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1490
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1491
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1492
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1494
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1495
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1497
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1499
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1500
        compile:'__getClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1501
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1502
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1503
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1504
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1506
    ^ JavaVM javaClassObjectForClass:self class'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1507
        selector:#'__getClass'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1508
        asJavaMethod:#'getClass()Ljava/lang/Class;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1509
        fakedSource:'#''getClass()Ljava/lang/Class;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1510
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1511
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1512
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1513
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1515
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1516
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1518
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1520
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1521
        compile:'__hashCode
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1522
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1523
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1524
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1525
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1527
    ^ self identityHash'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1528
        selector:#'__hashCode'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1529
        asJavaMethod:#'hashCode()I'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1530
        fakedSource:'#''hashCode()I''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1531
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1532
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1533
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1534
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1536
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1537
        in:Object.
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
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1541
     self initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1542
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1544
    "Modified: / 28-01-1997 / 19:38:58 / stefan"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1545
    "Modified: / 22-01-1998 / 21:23:40 / av"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1546
    "Created: / 04-02-1998 / 21:35:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1547
    "Modified: / 30-12-1998 / 21:07:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1548
    "Modified: / 25-10-2010 / 16:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1549
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1551
initializeBaseClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1552
    "load req'd base classes"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1553
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1554
    #( 'java.lang.Object'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1555
     'java.lang.Class'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1556
     'java.lang.String'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1557
     'java.lang.System' )
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1558
            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1559
                :cName |
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1560
                (self classForName: cName) isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1561
                    self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1562
                        warn: ('JavaVM: could not find required class: ' , cName asText allBold
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1563
                                , '\\Please check the Java settings (javaHome)') withCRs.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1564
                    AbortSignal raise.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1565
                    ^ self
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1566
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1567
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1568
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1569
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1570
     self initializeBaseClasses"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1571
    "Created: / 3.1.1998 / 21:13:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1572
    "Modified: / 23.12.1999 / 19:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1573
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1574
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1575
initializeClassReader
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1576
    "/Nothing to do"
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1577
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  1578
    JavaClassReader initialize.
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  1579
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1580
    "Created: / 06-09-2012 / 11:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1581
!
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1582
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1583
initializeJavaResources
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1584
    self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1585
    self initializePrimitiveClasses.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1586
    self initializeOpenFileTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1587
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1588
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1589
     JavaVM releaseAllMonitors"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1590
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1591
    "Created: / 02-01-1998 / 18:04:05 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1592
    "Modified: / 07-01-1998 / 22:58:10 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1593
    "Created: / 16-11-2011 / 14:23:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1594
    "Modified: / 17-08-2012 / 11:30:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1595
!
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1596
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1597
initializeMonitorTable
1553
ee3e63c04778 JavaVM: increased initial old space allocation, create huge LockTable to prevent its realloction
vranyj1
parents: 1552
diff changeset
  1598
    LockTable := WeakIdentityDictionary new:32000.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1599
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1600
    LockTableAccess name: 'JavaVM lock table access mutex'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1601
    Logger
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1602
        log: 'Initializing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1603
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1604
        facility: #JVM.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1605
    EnteredMonitorsPerProcess := IdentityDictionary new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1606
    Logger
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1607
        log: 'Initializing AcquiredMonitorsPerProcess'
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1608
        severity: #debug
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1609
        facility: #JVM.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1610
    AcquiredMonitorsPerProcess := IdentityDictionary new.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1611
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1612
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1613
     JavaVM initializeMonitorTable"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1614
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1615
    "Created: / 17-08-2012 / 11:30:38 / 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
  1616
!
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1617
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1618
initializeOpenFileTable
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1619
    OpenFileTable := OrderedCollection
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1620
                        with:Stdin
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1621
                        with:("JavaConsoleStream ?" Stdout)
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1622
                        with:("JavaConsoleStream ?" Stderr).
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1623
    OpenFileTableLock := RecursionLock new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1625
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1626
     JavaVM initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1627
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1628
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1629
    "Modified: / 06-08-1997 / 00:40:19 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1630
    "Created: / 02-01-1998 / 18:04:32 / cg"
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1631
    "Modified: / 30-07-2012 / 18:12:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1632
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1634
initializePrimitiveClasses
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1635
752
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
    "/        (#byte    'B' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1639
    "/        (#short   'S' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1640
    "/        (#int     'I' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1641
    "/        (#long    'J' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1642
    "/        (#boolean 'Z' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1643
    "/        (#char    'C' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1644
    "/        (#float   'F' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1645
    "/        (#double  'D' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1646
    "/        (#void    'V' 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1647
    "/    ) triplesDo:[:nm :sig :len |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1648
    "/        |jClass classInst|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1649
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1650
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1651
    "/        "/ create a javaClass for it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1652
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1653
    "/        jClass := Java at:'java.lang.Class'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1654
    "/        jClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1655
    "/            classInst := jClass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1656
    "/            JavaClasses at:nm put:classInst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1657
    "/            JavaClasses at:classInst put:nm.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1658
    "/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1659
    "/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1660
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1661
     self initializePrimitiveClasses"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1663
    "Modified: / 22-10-1998 / 01:56:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1664
    "Modified: / 20-12-2010 / 23:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1665
    "Modified: / 28-01-2011 / 14:57:38 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1666
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1668
initializeReflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1670
    Reflection := JavaVM::Reflection for: self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1672
    "Created: / 21-12-2010 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1673
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1675
initializeSimulatedLibs
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1676
    "return a collection of native libs which are considered
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1677
     being already loaded. (used with jdk < 1.2)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1679
    LibPath := #(
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1680
                        '__builtIn__'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1681
                        '/usr/local/lib'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1682
                        '/usr/local/lib/java'
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
    SimulatedLibs := #(
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1686
                        '__builtIn__/net'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1687
                        '__builtIn__/awt'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1688
                        '__builtIn__/tawt'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1689
                        '__builtIn__/winawt'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1690
                        '__builtIn__/jpeg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1691
                        '__builtIn__/mmedia'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1692
                        '__builtIn__/zip'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1693
                        '__builtIn__/math'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1694
                        '__builtIn__/sysresource'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1695
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1696
                        "/ KAVA ...
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1697
                        '__builtIn__/agent'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1698
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1699
                        "/ MS-java ...
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1700
                        '__builtIn__/msawt'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1701
                        '__builtIn__/javart'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1703
                        "/ 1.1.8
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1704
                        '__builtIn__/jpeg_sun'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1705
                      ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1706
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1707
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1708
     self initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1709
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1711
    "Created: / 4.1.1998 / 19:05:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1712
    "Modified: / 17.11.1998 / 23:53:02 / cg"
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
initializeSimulatedNativeLibs
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1716
    "return a collection of native libs which are considered
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1717
     being already loaded (used with jdk >= 1.2)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1718
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1719
    OperatingSystem isUNIXlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1720
        SimulatedNativeLibs := #( 'libawt.so' 'libnet.so' 'libcmm.so' 'libzip.so' 'libnio.so'
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1721
                                  'libmanagement.so'        "/ Management Beans - req'd by Tomcat
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1722
                                  'libjpeg.so' 'liblcms.so' "/ Some UI stuff - req'd by Tomcat !!?!!
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1723
                                  'libfontmanager.so'       "/ req'd by java.text.Bidi
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1724
                                    ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1725
        ^ self.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1726
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1727
    OperatingSystem isMSWINDOWSlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1728
        SimulatedNativeLibs := #( 'awt.dll' 'net.dll' 'cmm.dll' 'zip.dll' 'nio.so'
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1729
                                  'management.dll'          "/ Management Beans - req'd by Tomcat
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1730
                                  'fontmanager.dll'          "/ req'd by java.text.Bidi
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1731
                                ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1732
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1733
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1734
    SimulatedNativeLibs := #().
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1735
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1736
    "
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1737
     self initializeSimulatedNativeLibs"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1739
    "Modified: / 27-01-1998 / 18:43:10 / cg"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1740
    "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
  1741
    "Modified: / 21-12-2011 / 23:03:35 / jv"
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1742
    "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
  1743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1745
initializeSimulatedNativeMemory
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1747
    SimulatedNativeMemory := JavaNativeMemory new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1749
    "Created: / 07-12-2010 / 21:07:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1750
    "Modified: / 07-12-2010 / 23:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1751
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1752
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1753
initializeSystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1754
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1755
    | java_lang_ClassLoader stx_libjava_ClassLoader |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1756
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1757
    java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1758
    (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1759
        SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1760
    ].
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1761
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1762
    stx_libjava_ClassLoader := JavaVM classForName: 'stx.libjava.ClassLoader'.
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1763
    (SmalltalkClassLoader := stx_libjava_ClassLoader instVarNamed:#scl) isNil ifTrue:[
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1764
        SmalltalkClassLoader := stx_libjava_ClassLoader perform: #'getSmalltalkClassLoader()Ljava/lang/ClassLoader;'
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1765
    ].
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1766
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1767
    "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1768
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1769
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1770
initializeSystemPropertiesInto: props
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1771
    | cpu  cpu2  os |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1772
    "/ use JAVA compatible cpu-name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1773
    cpu := OperatingSystem getCPUType.
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1774
    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
  1775
    cpu = 'i386' ifTrue: [ cpu := 'ix86' ].
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1776
    (OperatingSystem getSystemInfo at: #machine) = 'x86_64' ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1777
        cpu2 := 'amd64'
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1778
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1779
    SimulatedOS notNil ifTrue: [ os := SimulatedOS ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1780
        os := OperatingSystem getOSType.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1781
        os := os asUppercaseFirst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1782
    ].
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1783
    props addPairsFrom: {
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1784
                'java.runtime.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1785
                'OpenJDK Runtime Environment'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1786
                'sun.boot.library.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1787
                OperatingSystem isMSWINDOWSlike ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1788
                    (Java release jreHome / 'bin') asString
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1789
                ] ifFalse: [ (Java release jreHome / 'lib' / cpu2) asString ].
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1790
                'java.vm.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1791
                Smalltalk versionString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1792
                'java.vm.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1793
                'eXept Software AG & SWING Research Group'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1794
                'java.vendor.url'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1795
                'http://www.exept.de & http://swing.fit.cvut.cz'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1796
                'path.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1797
                OperatingSystem pathSeparator asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1798
                'java.vm.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1799
                'Smalltalk/X'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1800
                'file.encoding.pkg'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1801
                'sun.io'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1802
                'sun.java.launcher'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1803
                'SUN_STANDARD'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1804
                'user.country'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1805
                'US'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1806
                'sun.os.patch.level'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1807
                'unknown'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1808
                'java.vm.specification.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1809
                'Java Virtual Machine Specification'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1810
                'user.dir'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1811
                Filename currentDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1812
                'java.awt.graphicsenv'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1813
                'sun.awt.X11GraphicsEnvironment'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1814
                'java.endorsed.dirs'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1815
                (Java release jreHome / 'lib' / 'endorsed') asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1816
                'os.arch'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1817
                cpu.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1818
                'java.io.tmpdir'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1819
                Filename tempDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1820
                'line.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1821
                Character cr asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1822
                'java.vm.specification.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1823
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1824
                'os.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1825
                os.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1826
                'sun.jnu.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1827
                'UTF-8'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1828
                'java.library.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1829
                self defaultJavaLibraryPath.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1830
                'java.specification.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1831
                'Java Platform API Specification'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1832
                'java.class.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1833
                '50.0'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1834
                'sun.management.compiler'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1835
                'Smalltalk/X jinterpreter'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1836
                'os.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1837
                OperatingSystem isMSWINDOWSlike ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1838
                    OperatingSystem getSystemInfo at: #release
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1839
                ] ifFalse: [ OperatingSystem getSystemInfo at: #version ].
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1840
                'user.home'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1841
                Filename homeDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1842
                'user.timezone'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1843
                ''.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1844
                'java.awt.printerjob'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1845
                'sun.print.PSPrinterJob'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1846
                'file.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1847
                'UTF-8'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1848
                'java.specification.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1849
                '1.6'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1850
                'java.class.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1851
                self defaultCLASSPATH.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1852
                'user.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1853
                OperatingSystem getLoginName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1854
                'java.vm.specification.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1855
                '1.0'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1856
                 "'sun.java.command'            . 'SystemProperties' ."
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1857
                'java.home'.
1927
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  1858
                Java release jreHome pathName.
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1859
                'sun.arch.data.model'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1860
                '32'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1861
                'user.language'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1862
                Smalltalk language.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1863
                'java.specification.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1864
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1865
                'java.vm.info'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1866
                'Smalltalk/X 6.2.1'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1867
                'java.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1868
                '1.6'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1869
                'java.ext.dirs'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1870
                self defaultExtDirs.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1871
                'sun.boot.class.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1872
                self defaultSunBootLibraryPath.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1873
                'java.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1874
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1875
                'file.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1876
                Filename separatorString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1877
                'java.vendor.url.bug'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1878
                'https://swing.fit.cvut.cz/projects/stx-libjava/newticket'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1879
                'sun.io.unicode.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1880
                'UnicodeLittle'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1881
                'sun.cpu.endian'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1882
                'little'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1883
                'sun.desktop'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1884
                'gnome'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1885
                'sun.cpu.isalist'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1886
                ''
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1887
            }.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1888
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1889
    "/ props at:'user.dir'           put:(Filename currentDirectory pathName).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1890
    "/props at:'awt.toolkit'        put:(self defaultWindowingToolKit).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1891
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1892
    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
  1893
    props at: 'hotjava.home' put: (self defaultHotJavaHome).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1894
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1895
    "/ new with jdk 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1896
    "/ undocumented ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1897
    "/ suppress copyright view in appletViewer ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1898
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1899
    props at: 'appletviewer.version' put: '1.1'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1900
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1901
    "/ new with jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1902
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1903
    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
  1904
    props at: 'java.awt.fonts' put: '/usr/lib/X11/fonts'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1905
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1906
    "/ jws
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1907
    "/props at:'jws.home'             put:(self defaultJWSHome).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1908
    "/ new with jws 2.0 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1909
    "/props at:'jws.startcmd'         put:'jws.showwin.mainide'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1910
"/    props at: 'sun.misc.URLClassPath.debug' put: 'true'.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1911
1842
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1912
    "/ Java tests, sigh..."
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1913
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1914
    props at: 'libjava.tests.dir' put: ((Smalltalk getPackageDirectoryForPackage: self package) / 'tests') pathName.
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1915
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1916
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1918
    "
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1919
     self initializeSystemPropertiesInto:(Dictionary new)"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1920
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1921
    "Created: / 03-01-1998 / 14:26:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1922
    "Modified: / 27-01-2000 / 02:20:18 / cg"
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1923
    "Modified (format): / 03-11-2011 / 12:40:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1924
    "Modified: / 21-12-2011 / 23:05:11 / jv"
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1925
    "Modified: / 13-09-2012 / 20:33:56 / m"
1927
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  1926
    "Modified: / 09-01-2013 / 17:11:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1927
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1929
initializeVM
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1930
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1931
    OperatingSystem initResources.
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1932
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1933
    "Java requires a huge stack. Change default to 16 MB.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1934
     Observations:
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1935
     - Groovy 'rnd = new java.security.SecureRandom()' requires > 4MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1936
     - ant run on Groovy 1.8.7 source requires > 8MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1937
    "
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  1938
    "/Process defaultMaximumStackSize: ((1024 * 1024 * 16) max: Process defaultMaximumStackSize).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1939
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1940
    "Java Classes are huge and there is a (unfixed) bug in 2-phase oldspace
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1941
     compress, so try to avoid it by pre-allocating more oldspace."
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1942
    OldspaceIncreased ~~ true ifTrue:[
1607
c8924329bb5d Reserve at least 64MB oldspace for Java
vranyj1
parents: 1605
diff changeset
  1943
        ObjectMemory moreOldSpace: 64"MB"*(1024*1024).
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1944
        OldspaceIncreased := true.
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1945
    ].
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1946
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1947
    ClassRegistry := JavaClassRegistry for: self.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1948
    ClassLoaderQuerySignal := Query new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1949
    JavaObject autoload.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1950
    JavaContext autoload.
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1951
    MonitorTrace isNil ifTrue: [ self initialize ].
1468
6024720925ec - JavaVM
vranyj1
parents: 1461
diff changeset
  1952
    MonitorTraceId := 0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1953
    self initializeAdditionalJavaProtocol.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1954
    self initializeJavaResources.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1955
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1956
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1957
    Java markAllClassesUninitialized.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1958
    ZipCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1959
    ZipEntryCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1960
    ZipInflaters := OrderedCollection new.
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  1961
    FinalizationLobby := JavaFinalizationRegistry new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1962
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1963
    "/ force re-resolving;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1964
    "/ otherwise, class-inits would not be called
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1965
    "/ by resolver ... (sigh)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1966
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1967
    JavaNativeMethod flushAllCachedNativeMethods.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1968
    JavaMethod
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1969
        allSubInstancesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1970
            :m |
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1971
            m checked: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1972
            m code: nil.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1973
        ].
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1974
    ObjectMemory flushCaches.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1975
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1976
    "/ sigh - must flush inline caches.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1977
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1978
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1979
    self initializeSimulatedLibs.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1980
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1981
    "/ < jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1982
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1983
    self initializeSimulatedNativeLibs.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1984
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1985
    "/ >= jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1986
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1987
    self initializeSimulatedNativeMemory.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1988
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1989
    "/>  jdk 6
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1990
1953
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  1991
    ThreadInterrupts := Dictionary new.
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  1992
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1993
    self initializeClassReader.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1994
    self initializeOpenFileTable.
907
9ab15562799b JavaVM: Initialization fix
vranyj1
parents: 906
diff changeset
  1995
    self initializeReflection.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1996
    self initializeBaseClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1997
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1998
    Java initSystemClass.
1250
3904fc7212b4 forgotten methods :)
hlopkmar
parents: 1249
diff changeset
  1999
    Java initializeCurrentThread.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2000
    self initializeSystemClassLoader.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  2001
    ObjectMemory addDependent: self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  2002
    StartupTime := OperatingSystem getOSTime.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2003
    FinalizationLobby startFinalizationProcessAt: 5.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2004
    PerfCounters := Performance for: self.
1953
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  2005
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  2006
1754
b3cde0c1c2b1 - do not enforce Java native code optimization off
vranyj1
parents: 1749
diff changeset
  2007
    JavaNativeMethod allInstancesDo:[:e|e nCallsReset ].
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  2008
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2009
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2010
     JavaVM initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2011
     JavaVM initializeVM."
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2012
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2013
    "Created: / 03-01-1998 / 21:29:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2014
    "Modified: / 14-12-1999 / 18:58:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2015
    "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
  2016
    "Modified: / 24-02-2012 / 13:59:29 / Marcel Hlopko <hlopik@gmail.com>"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  2017
    "Modified: / 24-02-2012 / 14:37:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1953
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  2018
    "Modified: / 16-01-2013 / 13:18:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2019
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2021
initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2022
    |uClass updater p|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2023
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2024
    uClass := JAVA::sun::awt::ScreenUpdater.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2025
    uClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2026
        updater := uClass instVarNamed:'updater'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2027
        updater notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2028
            p := self stProcessForJavaThread:updater
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2029
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2030
        (updater isNil or:[p isNil or:[p isDead]]) isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2031
            self initializeVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2032
            ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2033
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2034
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2036
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2037
        self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2038
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2040
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2041
     JavaVM initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2042
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2044
    "Created: / 15.1.1998 / 17:32:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2045
    "Modified: / 24.12.1999 / 02:18:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2046
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2047
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2048
reboot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2049
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2050
    Java flushAllJavaResources.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2051
    self boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2052
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2053
    "Created: / 21-02-2012 / 18:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2054
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2055
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2056
reinitializeSockets
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2057
    "Reopens all server-sockets (i.e., listening sockets bound to a port).
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2058
     Called upon restarting from image"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2059
1635
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2060
    OpenFileTable notNil ifTrue:[
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2061
        OpenFileTable do:[:each|each isSocket ifTrue:[each reOpenIfPossible]]
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2062
    ].
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2063
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2064
    "Created: / 17-08-2012 / 15:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2065
!
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2066
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2067
reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2068
    |classesToInit|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2070
    self releaseAllJavaResources.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2072
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2074
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2075
    Java markAllClassesUninitialized.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2077
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2079
    classesToInit := JavaClass orderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2080
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2082
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2083
"/    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2085
    classesToInit do:[:jClass |
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2086
        jClass classInit
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2087
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2088
    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2089
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2090
    "Created: / 12-11-1998 / 15:37:52 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2091
    "Modified: / 17-11-1998 / 16:10:11 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2092
    "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
  2093
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2094
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2095
reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2096
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2097
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2098
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2099
    (JavaEventQueueThread isNil or:[JavaEventQueueThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2100
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2101
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2103
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2104
     JavaVM reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2105
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2107
    "Created: / 24.11.1998 / 15:45:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2108
    "Modified: / 24.12.1999 / 02:36:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2109
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2111
releaseAllJavaResources
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2112
    self deinitialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2113
    FirstWindowCreationSemaphore := Semaphore new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2114
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2115
    LoadedLibs := nil.
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2116
    LoadedNativeLibs := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2117
    ImageStretchCache := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2118
    LastGraphics := LastGC := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2119
    SimulatedNativeMemory := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2120
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2121
    self terminateAllThreads.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2122
    "/self releaseAllMonitors.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2123
    self releaseAllWindows.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2124
    self releaseAllStreams.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2126
    "
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2127
     JavaVM releaseAllJavaResources"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2129
    "Created: / 07-01-1998 / 22:49:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2130
    "Modified: / 24-12-1999 / 02:33:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2131
    "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
  2132
    "Modified: / 16-11-2011 / 20:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2133
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2135
releaseAllMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2136
    LockTable := WeakIdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2137
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2138
    LockTableAccess name: 'JavaVM lock table access mutex'.
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2139
    EnteredMonitorsPerProcess notNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2140
        EnteredMonitorsPerProcess
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2141
            keysAndValuesDo: [:p :value | value size > 0 ifTrue: [ self breakPoint: #mh ] ]
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2142
    ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2143
    self releaseLeftOverMonitors.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2144
    Logger
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2145
        log: 'Clearing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2146
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2147
        facility: #JVM.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2148
    EnteredMonitorsPerProcess := IdentityDictionary new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2149
    Logger
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2150
    log: 'Clearing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2151
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2152
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2153
        EnteredMonitorsPerProcess := IdentityDictionary new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2155
    "
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2156
     JavaVM releaseAllMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2158
    "Created: / 02-01-1998 / 18:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2159
    "Modified: / 07-01-1998 / 22:58:10 / cg"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2160
    "Modified: / 17-11-2011 / 17:00:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2161
    "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
  2162
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2164
releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2165
    OpenFileTable notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2166
	OpenFileTable do:[:aStream |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2167
	    aStream notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2168
		aStream ~~ Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2169
		    aStream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2170
			aStream ~~ Stderr ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2171
			    aStream ~~ JavaConsoleStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2172
				aStream isExternalStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2173
				    aStream shutDown
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2174
				]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2175
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2176
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2177
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2178
		]
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
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2182
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2184
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2185
     JavaVM releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2186
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2187
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2188
    "Created: / 7.1.1998 / 22:57:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2189
    "Modified: / 4.2.1998 / 19:53:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2190
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2192
releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2193
    KnownWindows notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2194
	KnownWindows do:[:aView |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2195
	    aView destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2196
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2197
	KnownWindows := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2198
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2200
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2201
     self releaseAllWindows
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
    "Created: / 7.1.1998 / 22:58:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2205
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2207
releaseLeftOverMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2208
    "release monitors held by dead processes"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2209
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2210
    | deadProcesses |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2211
    deadProcesses := IdentitySet new.
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2212
    EnteredMonitorsPerProcess notNil ifTrue: [
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2213
        EnteredMonitorsPerProcess keysAndValuesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2214
            :p :monitors |
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2215
            p isDead ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2216
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2217
                monitors do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2218
                    :mon |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2219
                    Logger
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2220
                        log: 'release leftover monitor ...'
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2221
                        severity: #info
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2222
                        facility: 'JVM'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2223
                    mon release
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2224
                ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2225
                deadProcesses add: p.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2226
            ]
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2227
        ].
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2228
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2229
    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
  2230
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2231
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2232
     JavaVM releaseLeftOverMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2233
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2234
    "Created: / 08-01-1998 / 17:29:26 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2235
    "Modified: / 14-09-2011 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2236
    "Modified: / 29-11-2011 / 14:26:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2237
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2238
1926
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2239
releasehSmalltalkClassLoader
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2240
    SmalltalkClassLoader := nil.
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2241
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2242
    "Created: / 09-01-2013 / 15:58:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2243
!
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
  2244
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2245
releasehSystemClassLoader
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2246
    SystemClassLoader := nil.
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2247
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2248
    "Created: / 30-07-2012 / 17:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2249
!
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2250
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2251
systemProperties
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2252
    |props|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2254
    props := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2255
    self initializeSystemPropertiesInto:props.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2256
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2258
    "Created: / 3.1.1998 / 14:25:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2259
    "Modified: / 3.1.1998 / 14:32:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2260
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2261
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2262
update:what with:aParameter from:changedObject
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2263
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2264
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2265
    #earlyRestart is send first, nothing has been setup yet.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2266
    (should be used to flush all device dependent entries)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2267
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2268
    what == #earlyRestart ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2269
        self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2270
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2271
        ^self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2272
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2273
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2274
    "#returnFromSnapshot is sent last (should be used to restart processes, reOpen
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2275
    Streams which cannot be automatically be reopened (i.e. Sockets, Pipes) and so on.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2276
    (Notice that positionable fileStreams are already reopened and repositioned)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2277
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2278
    what == #returnFromSnapshot ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2279
        self reinitializeSockets.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2280
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2281
        ^self
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2282
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2283
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2284
     JavaVM initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2285
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2286
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2287
    ObjectMemory dependents
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2288
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2289
    "Created: / 09-01-1998 / 10:30:13 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2290
    "Modified: / 06-11-1998 / 00:40:53 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2291
    "Modified: / 17-08-2012 / 15:35:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2292
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2294
!JavaVM class methodsFor:'Signal constants'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2296
badMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2297
    ^ BadMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2299
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2300
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2302
callHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2303
    ^ CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2305
    "Created: / 2.1.1998 / 18:07:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2306
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2307
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2308
classLoaderQuerySignal
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2309
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2310
    <resource: #obsolete>
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2311
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2312
    self breakPoint: #jv.
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2313
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2314
    ^JavaClassReader classLoaderQuerySignal
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2315
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2316
    "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
  2317
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2318
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2319
internalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2320
    ^ InternalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2321
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2322
    "Created: / 2.1.1998 / 18:07:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2323
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2325
javaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2326
    "^ JavaExceptionSignal"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2327
    ^JavaError
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2329
    "Created: / 02-01-1998 / 18:05:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2330
    "Modified: / 01-03-2011 / 21:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2331
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2332
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2333
privilegedAccessQuery
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2334
    ^ JavaPrivilegedAccessQuery.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2335
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2336
    "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
  2337
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2338
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2339
stdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2340
    ^ StdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2342
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2343
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2345
unhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2346
    ^ UnhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2348
    "Created: / 2.1.1998 / 18:05:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2349
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2351
unimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2352
    ^ UnimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2354
    "Created: / 2.1.1998 / 18:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2355
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2357
unimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2358
    ^ UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2359
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2360
    "Created: / 2.1.1998 / 18:06:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2361
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2363
!JavaVM class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2364
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2365
addClass:aJavaClass definedBy:aJavaClassLoader
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2366
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2367
    self assert: aJavaClass classLoader == aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2368
    ^ ClassRegistry registerClass:aJavaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2369
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2370
    "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
  2371
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2372
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2373
addSelector:newSelector withMethod:newMethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2374
    super addSelector:newSelector withMethod:newMethod.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2375
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2376
    "/JavaNativeMethod may not be loaded..."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2377
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2378
    (Smalltalk at:#JavaNativeMethod)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2379
        ifNotNil:[JavaNativeMethod flushAllCachedNativeMethods].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2381
    "Created: / 24-12-1999 / 03:12:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2382
    "Modified: / 02-02-2011 / 04:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2383
    "Modified: / 02-02-2011 / 23:38:08 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2384
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2386
assertionsEnabled: aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2388
    AssertionsEnabled := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2390
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2391
        JavaVM assertionsEnabled: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2392
        JavaVM assertionsEnabled: false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2393
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2395
    "Created: / 24-11-2010 / 09:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2396
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2397
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2398
classRegistry
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2399
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2400
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2401
    "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
  2402
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2403
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2404
extClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2405
    ^ 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
  2406
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2407
    "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
  2408
    "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
  2409
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2410
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2411
finalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2412
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2413
    ^FinalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2414
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2415
    "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
  2416
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2417
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2418
finalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2419
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2420
    ^FinalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2421
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2422
    "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
  2423
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2424
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2425
javaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2426
     ^ JavaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2428
    "Created: / 24.12.1999 / 02:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2429
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2431
javaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2432
     ^ JavaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2434
    "Created: / 8.1.1999 / 17:05:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2435
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2436
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2437
javaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2438
     ^ JavaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2439
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2440
    "Created: / 8.1.1999 / 17:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2441
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2442
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2443
performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2444
    "Return an object keeping Java performance counters"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2445
    ^ PerfCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2446
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2447
    "Modified: / 14-08-2012 / 00:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2448
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2449
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2450
reflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2451
    ^ Reflection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2453
    "Created: / 28-01-2011 / 15:09:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2454
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2455
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2456
registry
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2457
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2458
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2459
    "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
  2460
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2461
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2462
smalltalkClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2463
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2464
    ^SmalltalkClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2465
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2466
    "Created: / 22-08-2012 / 13:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2467
!
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2468
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2469
systemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2470
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2471
    ^SystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2472
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2473
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2474
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2475
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2476
useSmalltalkInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2478
    JavaMethod makeMetaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2480
    "Created: / 23-02-2011 / 12:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2481
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2483
useVMInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2485
    JavaMethod makeJavaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2487
    "Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2488
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2489
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2490
!JavaVM class methodsFor:'cache management'!
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2491
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2492
flushCachesFor: aClass
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2493
    "Flush all caches for given class, including JIT-compiled code.
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2494
     Called for allow for dynamic recompilation when a reference
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2495
     is resolved"
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2496
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2497
    aClass methodDictionary do:[:mthd|
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
  2498
        (mthd isJavaMethod and:[mthd isResolved not]) ifTrue:[
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
  2499
            "Stdout nextPutAll:'Flushing code for ' , mthd printString; cr."
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2500
            mthd code: nil.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2501
            mthd checked: false.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2502
        ].
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2503
    ].
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2504
    ObjectMemory flushCachesFor: aClass.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2505
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2506
    "Created: / 17-10-2012 / 20:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2507
! !
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2508
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2509
!JavaVM class methodsFor:'class access'!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2510
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2511
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2512
    ^self reflection arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2513
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2514
    "Created: / 05-07-2012 / 23:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2515
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2516
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2517
at: aString
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2518
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2519
    ^ ClassRegistry classNamed: aString asInternalJavaClassName.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2520
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2521
    "Modified (comment): / 21-10-2011 / 12:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2522
    "Modified: / 23-10-2011 / 12:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2523
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2524
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2525
at: aString put: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2526
    self breakPoint: #mh.
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2527
    self breakPoint: #jv.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2528
    "dont use me anymore"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2529
    ^ ClassRegistry registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2530
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2531
    "Modified (comment): / 21-10-2011 / 12:14:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2532
    "Modified: / 23-10-2011 / 11:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2533
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2534
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2535
classForName: className
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2536
    "load class from registry - load using classLoader from query or JavaClassReader if absent"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2537
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2538
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2539
    ^ self classForName: className asSlashedJavaClassName
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2540
        definedBy: (JavaClassReader classLoaderQuerySignal query) "? SystemClassLoader."
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2541
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2542
    "Modified: / 02-11-2011 / 16:33:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2543
    "Modified: / 23-01-2013 / 16:13:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2544
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2545
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2546
classForName: className definedBy: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2547
    "load class from registry - load using given classLoader if not nil"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2548
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2549
    | result |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2550
    result := self
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2551
                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
  2552
                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
  2553
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2554
                    | 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
  2555
                    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
  2556
                    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
  2557
                        "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
  2558
                        class := self usePrimordialCLToLoadClassNamed: className.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2559
                        self assert:(class notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2560
    message:'Couldnt load class ' , className , ' while booting Java VM'.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2561
                        class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2562
                    ] ifTrue: [
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2563
                        self assert:(self booted)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2564
    message:'Java VM is not booted and we are not using primordial class loader to load: ' 
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2565
            , className.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2566
                        (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
  2567
                            "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
  2568
                            class := self usePrimordialCLToLoadClassNamed: className.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2569
                            self assert:(class notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2570
    message:'Class ' , className 
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2571
            , ' is supposed to be in boot classpath, but we couldnt load it'.
1073
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.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2573
                        ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2574
                            (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
  2575
                                class := self useExtCLToLoadClassNamed: className.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2576
                                self assert:(class notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2577
    message:'Class ' , className 
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2578
            , ' is supposed to be in java.ext,dirs, but we couldnt load it'.
1073
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.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2580
                            ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2581
                                "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
  2582
                                 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
  2583
                                classLoader isNil ifTrue: [
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2584
                                    self assert:(self systemClassLoader notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2585
    message:'We needed system class loader, but its not loaded yet'.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2586
                                    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
  2587
                                ] 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
  2588
                                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
  2589
                                            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
  2590
                                class isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2591
                                    Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2592
                                        log: 'Even ' , classLoader printString , ' was not able to load class '
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2593
                                                , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2594
                                        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
  2595
                                        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
  2596
                                    nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2597
                                ] 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
  2598
                            ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2599
                        ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2600
                    ]
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2601
                ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2602
    result isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2603
        Logger
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2604
            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
  2605
            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
  2606
            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
  2607
    ] 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
  2608
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2609
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2610
    "Created: / 21-10-2011 / 12:01:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2611
    "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
  2612
    "Modified: / 02-11-2011 / 16:49:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2613
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2614
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2615
classForName: className definedBy: classLoader ifAbsentPut: aBlock
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2616
    "load class from registry - if absent evaluate given block to get loaded class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2617
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2618
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2619
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2620
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2621
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2622
    result := ClassRegistry
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2623
                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
  2624
                loader: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2625
                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
  2626
    result notNil ifTrue: [
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2627
        result := self makeArrayOf: result asDescribedBy: className.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2628
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2629
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2630
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2631
    "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
  2632
    "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
  2633
    "Modified (format): / 02-11-2011 / 16:09:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2634
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2635
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2636
classNamed: className
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2637
    "Return class with given name loaded by current classloader or nil if class is not yet loaded"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2638
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2639
    ^ self classNamed: className definedBy: JavaClassReader classLoaderQuerySignal query.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2640
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2641
    "Modified: / 21-10-2011 / 12:09:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2642
    "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
  2643
    "Modified: / 28-10-2011 / 22:12:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2644
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2645
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2646
classNamed: className definedBy: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2647
    "Return class with given name loaded by given classloader or nil if class is not yet loaded"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2648
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2649
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2650
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2651
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2652
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2653
    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
  2654
                classForName: className asSlashedJavaClassName
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2655
                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
  2656
                ifAbsent: [ ^ nil ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2657
    ^ self makeArrayOf: result asDescribedBy: className.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2658
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2659
    "Created: / 21-10-2011 / 11:58:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2660
    "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
  2661
    "Modified: / 01-11-2011 / 15:36:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2662
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2663
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2664
loadClassesIn: directory
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2665
"load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2666
The argument is string containing the name of the directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2667
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2668
Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2669
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2670
^ self loadClassesIn: directory matching: '*'.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2671
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2672
    "Modified: / 11-06-2011 / 13:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2673
    "Created: / 21-10-2011 / 12:40:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2674
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2675
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2676
loadClassesIn: directory matching: pattern
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2677
    "load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2678
     The arguments are a string containing the name of the directory
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2679
     and a class name pattern. Only classes matching the pattern are loaded.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2680
     class names are matched using String>>matches:.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2681
     ALL CLASSES ARE INSTALLED!!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2682
     Returns a set of loaded classes."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2683
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2684
    | dir  dirString  className  loadedClasses |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2685
    dir := directory asFilename asAbsoluteFilename.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2686
    loadedClasses := Set new.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2687
    Java addToClassPath: dir pathName.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2688
    JavaClassReader classLoaderQuerySignal answer: SystemClassLoader do:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2689
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2690
    dir
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2691
        recursiveDirectoryContentsAsFilenamesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2692
            :filename |
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2693
            (filename isRegularFile and: [ filename suffix = #class ]) ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2694
                dirString := dir pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2695
                className := filename withoutSuffix pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2696
                className := className subString: dirString size + 2 to: className size.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2697
                className := className copyReplaceAll: (Filename separator) with: $..
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2698
                (className matches: pattern) ifTrue: [
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2699
                    (self classNamed: className) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2700
                        loadedClasses add: (self classForName:className).
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2701
                    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2702
                ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2703
            ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2704
        ].
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2705
    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2706
    ^ loadedClasses.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2707
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2708
    "Modified: / 21-10-2011 / 12:52:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2709
    "Modified: / 30-10-2011 / 14:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2710
! !
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2711
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2712
!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
  2713
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2714
useExtCLToLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2715
    | 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
  2716
    ecl := self extClassLoader.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2717
    self assert:(ecl notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2718
    message:'we want to use ExtClassLoader, but its not loaded yet'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2719
    class := ecl
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2720
                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
  2721
                with: (Java as_String: (className asDottedJavaClassName)).
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2722
    self assert:(class notNil)
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2723
    message:'we tried to load class ' , className 
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  2724
            , ' using ExtClassLoader and we failed:)'.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2725
                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
  2726
                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
  2727
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2728
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2729
    "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
  2730
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2731
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2732
usePrimordialCLToLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2733
    | class |
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2734
    JavaClassReader classLoaderQuerySignal answer: nil do: [
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2735
        class := JavaClassReader readClass: className classPath: Java release bootClassPath  
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2736
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2737
    ^ class
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2738
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2739
    "Modified: / 02-11-2011 / 17:28:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2740
    "Modified: / 23-01-2013 / 15:18:53 / 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
  2741
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2742
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2743
useUserDefinedCL: classLoader toLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2744
    | classObject  class |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2745
    classObject := 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
  2746
                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
  2747
                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
  2748
    class := self classForJavaClassObject: classObject.
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2749
    class javaMirror getClassLoader isNil ifTrue: [self breakPoint:#mh].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2750
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2751
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2752
    "Created: / 02-11-2011 / 16:20:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2753
    "Modified: / 22-08-2012 / 12:57:59 / 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
  2754
! !
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2755
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2756
!JavaVM class methodsFor:'debugging support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2757
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2758
disableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2759
    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
  2760
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2761
    "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
  2762
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2763
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2764
enableMonitorTrace
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2765
    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
  2766
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2767
    "Created: / 22-11-2011 / 10:29:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2768
    "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
  2769
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2770
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2771
exceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2772
    ^ ExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2773
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2774
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2775
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2777
exceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2778
    ExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2780
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2781
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2783
exceptionDebugPatterns
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2785
    ^ ExceptionDebugPatterns
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2786
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2787
    ExceptionDebug must be set in order to ExceptionDebugPatterns work
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2788
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2789
    ExceptionDebug := true.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  2790
    ExceptionDebug := false.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2791
    ExceptionDebugPatterns removeAll.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2792
    ExceptionDebugPatterns add: 'java/lang/SecurityException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2793
    ExceptionDebugPatterns add: 'java/net/ConnectException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2794
    ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  2795
    ExceptionDebugPatterns add: 'java/lang/IllegalAccessException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2796
    ExceptionDebugPatterns add: 'java/lang/ClassNotFoundException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2797
    ExceptionDebugPatterns add: 'java/io/IOException'.
1387
4c609318f0e5 - Improvements in GroovyCompiler (error handling)
vranyj1
parents: 1384
diff changeset
  2798
    ExceptionDebugPatterns add: 'java/io/FileNotFoundException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2799
    ExceptionDebugPatterns add: 'java/io/EOFException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2800
    ExceptionDebugPatterns add: 'java/lang/NoSuchMethodException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2801
    ExceptionDebugPatterns add: 'java/lang/ArrayIndexOutOfBoundsException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2802
    ExceptionDebugPatterns add: 'java/lang/IllegalMonitorStateException'.
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2803
    ExceptionDebugPatterns add: 'org/xml/sax/SAXParseException'.
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2804
    ExceptionDebugPatterns add: 'org/apache/xerces/xni/parser/XMLParseException'.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  2805
    ExceptionDebugPatterns add: 'java/lang/InstantiationException'.
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2806
    ExceptionDebugPatterns add: 'java/lang/RuntimeException'.
1709
94dcd942c81b - JavaVM
vranyj1
parents: 1708
diff changeset
  2807
    ExceptionDebugPatterns add: 'java/lang/ClassCastException'.
94dcd942c81b - JavaVM
vranyj1
parents: 1708
diff changeset
  2808
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2809
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2810
    ExceptionDebug := true.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2811
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2812
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2813
    "Created: / 25-02-2011 / 08:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2814
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2815
1544
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2816
!JavaVM class methodsFor:'debugging-dumping'!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2817
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2818
dumpOpenExternalStream: stream on: output
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2819
    output nextPutAll: stream class printString.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2820
    output space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2821
    OpenFileTable notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2822
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2823
        idx := OpenFileTable identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2824
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2825
            output nextPutAll:'JavaVM:OpenFileTable['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2826
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2827
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2828
    ZipCache notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2829
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2830
        idx := ZipCache identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2831
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2832
            output nextPutAll:'JavaVM:ZipCache['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2833
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2834
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2835
    stream isFileStream ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2836
        output nextPutAll: stream pathName ? '?'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2837
    ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2838
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2839
    "Created: / 23-07-2012 / 16:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2840
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2841
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2842
dumpOpenExternalStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2843
    ^self dumpOpenExternalStreamsOn: Stdout.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2844
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2845
    "Created: / 23-07-2012 / 16:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2846
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2847
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2848
dumpOpenExternalStreamsOn: aStream
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2849
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2850
    | nOpenStreams |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2851
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2852
    nOpenStreams := 0.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2853
    ExternalStream allSubInstancesDo:[:each|
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2854
        each isOpen ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2855
            nOpenStreams := nOpenStreams + 1.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2856
            self dumpOpenExternalStream: each on: aStream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2857
            aStream cr.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2858
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2859
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2860
    aStream nextPutLine:
1544
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2861
        ('SUMMARY: open=%1, java.io=%2, java.util.zip=%3'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2862
            bindWith: nOpenStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2863
                with: ((OpenFileTable ? #()) inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2864
                with: ((ZipCache ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2865
        )
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2866
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2867
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2868
        JavaVM dumpOpenExternalStreamsOn: Stdout
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2869
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2870
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2871
    "Created: / 23-07-2012 / 16:34:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2872
! !
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2873
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2874
!JavaVM class methodsFor:'defaults'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2876
audioEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2877
    ^ NoAudio not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2879
    "Created: / 18.7.1998 / 22:31:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2880
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2882
audioEnabled:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2883
    NoAudio := aBoolean not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2885
    "Created: / 18.7.1998 / 22:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2886
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2888
defaultCLASSPATH
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2889
    |s|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2890
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2891
    s := '' writeStream.
1953
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  2892
    Java effectiveClassPath
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2893
        do:[:p | s nextPutAll:p asString ]
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2894
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2896
    ^ s contents
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2898
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2899
     self defaultCLASSPATH
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2900
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2902
    "Created: / 03-01-1998 / 14:27:21 / cg"
1953
1e42ad3fc322 Added support Java>>addToClassPath: & Java>>addToSourcePath:. Removed JavaPathElement.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1932
diff changeset
  2903
    "Modified: / 16-01-2013 / 13:15:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2904
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2905
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2906
defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2907
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2908
    ^String streamContents:[:s|
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2909
        Java javaExtDirs do:[:dir|
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2910
            s nextPutAll: dir pathName.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2911
        ] separatedBy:[
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2912
            s nextPut: OperatingSystem pathSeparator.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2913
        ]
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2914
    ]
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2915
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2916
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2917
    JavaVM defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2918
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2919
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2920
    "Created: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2921
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2922
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2923
defaultHotJavaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2924
    ^ '/usr/local/java/hotjava'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2926
    "Modified: / 5.8.1997 / 04:13:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2927
    "Created: / 3.1.1998 / 14:27:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2928
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2930
defaultJAVAHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2931
    ^ Java javaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2933
    "Modified: / 6.8.1997 / 00:54:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2934
    "Created: / 3.1.1998 / 14:27:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2935
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2936
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2937
defaultJWSHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2938
    '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS' asFilename exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2939
	^ '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2940
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2942
    ^ '/usr/local/java/JWS'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2944
    "Created: / 3.1.1998 / 14:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2945
    "Modified: / 3.12.1998 / 14:54:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2946
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2948
defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2949
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2950
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2951
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2952
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2953
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2954
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2955
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2956
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2957
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2958
            add: Java release javaHome asFilename / 'jre' / 'bin' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2959
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2960
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2961
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2962
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2963
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2965
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2966
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2967
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2968
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2969
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2971
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2972
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2973
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2975
    "Created: / 10-12-2010 / 14:09:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2976
    "Modified: / 01-04-2011 / 18:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2977
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2979
defaultSunBootLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2980
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2981
    |s|
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2982
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2983
    s := '' writeStream.
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2984
    Java release bootClassPath
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2985
        do:[:p | s nextPutAll:p asString]
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2986
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2987
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2988
    ^ s contents
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2989
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2990
    "
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2991
        JavaVM defaultSunBootLibraryPath
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2992
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2993
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2994
    "Created: / 10-12-2010 / 14:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
  2995
    "Modified: / 23-01-2013 / 15:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2996
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2997
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2998
defaultWindowingToolKit
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2999
    "/ prefer the windows toolkit ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3000
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3001
    (self classForName: 'sun.awt.windows.WToolkit') notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3002
        ^ 'sun.awt.windows.WToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3003
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3004
    (Java classForName: 'sun.awt.motif.MToolkit') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3005
        self halt: 'MotifToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3006
        ^ 'sun.awt.motif.MToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3007
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3008
    self halt: 'TinyToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3009
    ^ 'sun.awt.tiny.TinyToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3010
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3011
    "/    ^ 'sun.awt.win32.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3012
    "/    ^ 'sun.awt.motif.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3013
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3014
     self defaultWindowingToolKit"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3015
    "Created: / 3.1.1998 / 14:27:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3016
    "Modified: / 27.1.1998 / 21:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3017
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3019
fileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3020
    ^ FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3022
    "Created: / 27.1.1999 / 18:55:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3023
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3025
fileAccessTrace:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3026
    FileAccessTrace := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3027
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3028
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3029
    "Modified: / 27.1.1999 / 18:55:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3030
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3032
fileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3033
    ^ FileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3035
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3036
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3038
fileOpenConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3039
    FileOpenConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3040
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3041
    "Created: / 19.10.1998 / 16:01:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3042
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3044
javaConsole:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3045
    JavaConsoleStream := aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3047
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3048
     JavaVM javaConsole:Transcript
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3049
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3051
    "Modified: / 6.8.1997 / 00:34:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3052
    "Created: / 3.1.1998 / 14:27:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3053
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3055
javaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3056
    ^ JavaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3058
    "Created: / 3.1.1998 / 14:32:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3059
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3061
nullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3062
    ^ NullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3064
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3065
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3067
nullPointerExceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3068
    NullPointerExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3070
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3071
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3073
socketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3074
    ^ SocketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3076
    "Created: / 19.10.1998 / 16:02:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3077
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3079
socketConnectConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3080
    SocketConnectConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3082
    "Created: / 19.10.1998 / 16:02:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3083
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3084
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3085
!JavaVM class methodsFor:'eager resolving'!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3086
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3087
disableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3088
    EagerResolvingEnabled := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3089
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3090
    "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
  3091
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3092
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3093
eagerResolvingEnabled
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3094
    ^ EagerResolvingEnabled.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3095
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3096
    "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
  3097
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3098
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3099
enableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3100
     EagerResolvingEnabled := true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3101
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3102
    "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
  3103
! !
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3104
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3105
!JavaVM class methodsFor:'fileIO'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3107
addOpenFile:aStream
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3108
    "Given a stream, adds it into the open file table. Returns a
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3109
     (fake) file descriptor number"
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3110
    | fd |
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3111
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3112
    OpenFileTableLock critical:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3113
        fd := OpenFileTable indexOf: nil.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3114
        fd ~~ 0 ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3115
            OpenFileTable at: fd put: aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3116
            fd := fd - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3117
        ] ifFalse:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3118
            OpenFileTable add:aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3119
            fd := OpenFileTable size - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3120
        ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3121
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3122
    ^fd
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3123
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3124
    "Created: / 02-01-1998 / 18:32:59 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3125
    "Modified (comment): / 18-07-2012 / 23:00:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3126
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3127
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3128
getOpenFileAt:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3129
    ^ OpenFileTable at:idx+1 ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3131
    "Created: / 2.1.1998 / 18:28:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3132
    "Modified: / 2.1.1998 / 18:33:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3133
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3135
setOpenFile:aStream at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3136
    OpenFileTable size < (idx+1) ifTrue:[
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3137
        OpenFileTable grow:idx+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3138
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3139
    OpenFileTable at:idx+1 put:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3140
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3141
"/    Do not shrink OpenFileTable now, make debugging easier
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3142
"/    aStream isNil ifTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3143
"/        [ OpenFileTable last isNil ] whileTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3144
"/            OpenFileTable removeLast.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3145
"/        ]
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3146
"/    ].
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3147
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3148
    "Modified: / 02-01-1998 / 18:33:21 / cg"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3149
    "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
  3150
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3152
!JavaVM class methodsFor:'helpers'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3153
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3154
canCast: s to: t
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3155
    "Helper for _CHECKCAST:_:"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3156
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3157
    | sc  tc |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3158
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3159
    "Not specified in JVM spec, sigh"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3160
    s isJavaPrimitiveType ifTrue: [
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  3161
        "FIXME"
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  3162
        ^ 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
  3163
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3164
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3165
     Java VM Spec, 3rd edition, p 280:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3166
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3167
     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
  3168
     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
  3169
     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
  3170
     checkcast determines whether objectref can be cast to type T as follows:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3171
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3172
     - If S is an ordinary (nonarray) class, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3173
     - 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
  3174
     of T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3175
     - 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
  3176
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3177
    (s isJavaArrayClass not and: [ s isInterface not ]) ifTrue: [
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3178
        ^ (s includesBehavior: t).
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3179
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3180
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3181
     - If S is an interface type, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3182
     - 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
  3183
     - 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
  3184
     superinterface of S.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3185
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3186
    s isInterface ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3187
        ^ t isInterface not
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3188
            ifTrue: [ t == (self classForName: 'java.lang.Object') ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3189
            ifFalse: [ s includesBehavior: t ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3190
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3191
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3192
     - 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
  3193
     ponents of type SC , then:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3194
    "
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
  3195
    self assert:s isJavaArrayClass message:'S should be array type'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3196
    sc := s javaComponentClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3197
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3198
     - 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
  3199
    "
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  3200
    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
  3201
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3202
     - 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
  3203
     then one of the following must be true:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3204
     - TC and SC are the same primitive type.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3205
     - 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
  3206
     recursive application of these rules.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3207
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3208
    t isJavaArrayClass ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3209
        tc := t javaComponentClass.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3210
        ^ tc isJavaPrimitiveType
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3211
            ifTrue: [ tc == sc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3212
            ifFalse: [ self canCast: sc to: tc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3213
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3214
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3215
     - 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
  3216
     by arrays (JLS3 4.10.3).
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3217
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3218
    ((t name == #'java/lang/Cloneable')
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3219
        or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3220
    ^ false
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3222
    "Modified: / 09-01-1999 / 00:45:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3223
    "Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3224
    "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
  3225
    "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
  3226
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3227
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3228
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
  3229
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3230
    "Common helper for invoking methods and ctors. Performs
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3231
     (type) checks and unboxing. Return (possibly boxed) return value."
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3232
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3233
    | method parameterTypes bargs bargss retval retcls bi executionEx |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3234
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3235
    method := self reflection methodForJavaConstructorObject: jmethod.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3236
    parameterTypes := jmethod instVarNamed: #parameterTypes.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3237
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3238
    (obj isNil and:[method isStatic not]) ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3239
        self throwNullPointerException.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3240
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3241
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3242
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3243
    "Possibly box/unbox arguments"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3244
    args notEmptyOrNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3245
        bargs := Array new: (bargss := method numArgs).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3246
        bi := 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3247
        1 to: args size do:[:i|
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3248
            | cls |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3249
            bi > bargss ifTrue:[
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3250
"/                self breakPoint: #jv.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3251
                self throwIllegalArgumentException: 'passed more arguments than expected'.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3252
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3253
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3254
            cls := self classForJavaClassObject: (parameterTypes at: i).
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3255
            cls isJavaPrimitiveType ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3256
                bargs at: bi put: (cls javaUnbox: (args at:i) onError:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3257
"/                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3258
                    self throwIllegalArgumentException:'illegal unbox'. ^nil
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3259
                ]).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3260
                (cls == LargeInteger or:[cls == Float]) ifTrue:[bi := bi + 1].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3261
            ] ifFalse:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  3262
                ((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
  3263
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3264
                    self throwIllegalArgumentException:'incomplatible argument types'. ^nil.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3265
                ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3266
                bargs at: bi put: (args at:i).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3267
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3268
            bi := bi + 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3269
       ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3270
        bi <= bargss ifTrue:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3271
"/             self breakPoint: #jv.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  3272
             self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3273
                              withMessage: 'not enough arguments'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3274
        ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3275
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3276
        bargs := #()
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3277
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3278
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3279
    "Check number of arguments"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3280
    method numArgs ~= bargs size ifTrue:[
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3281
        self throwIllegalArgumentException:'Invalid number of arguments'.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3282
        ^nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3283
    ].
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3284
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3285
    "Lookup the method here - hack, because of those stupid package private methods"
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3286
    method isStatic not ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3287
        method := JavaLookup instance
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3288
                    lookupMethodForSelector: method selector
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3289
                                 directedTo: obj class
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3290
                                        for: obj
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3291
                              withArguments: bargs
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3292
                                       from: context
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3293
                                        ilc: nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3294
        method isNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3295
            self throwIllegalArgumentException:'Message not understood - invalid class for ''this'''.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3296
            ^nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3297
        ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3298
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3299
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3300
    "Fire the method"
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3301
    [
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3302
        method isStatic ifTrue:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3303
            retval := method valueWithReceiver: method javaClass arguments: bargs.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3304
        ] ifFalse:[
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3305
            retval := method valueWithReceiver: obj arguments: bargs.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3306
        ].
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3307
    ] on: (self classForName:'java.lang.Throwable') do:[:ex |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3308
        executionEx := ex.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3309
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3310
    executionEx notNil ifTrue:[
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3311
        self throwInvocationTargetException: 'An exception occured during invocation' target: executionEx.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3312
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3313
    ].
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3314
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
  3315
    isConstructor ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3316
        retcls := jmethod instVarNamed: #returnType.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3317
        retcls notNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3318
            retcls := self classForJavaClassObject: retcls.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3319
            retcls ~~ UndefinedObject ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3320
                retval := retcls javaBox: retval.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3321
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3322
        ].
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3323
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3324
    ^retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3325
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3326
    "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
  3327
!
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3328
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3329
javaStringObjectForString:string
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3330
    self breakPoint:#mh info:'refactor my sender to use reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3331
    ^ self reflection javaStringObjectForString:string interned:false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3333
    "Created: / 22-11-2010 / 16:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3334
    "Modified: / 09-02-2011 / 00:47:49 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3335
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3336
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3337
javaStringObjectForString:string interned:intern
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3338
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3339
    ^self reflection javaStringObjectForString:string interned:intern.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3341
    "Created: / 22-11-2010 / 16:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3342
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3343
    "Modified: / 09-02-2011 / 01:04:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3344
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3345
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3346
javaThreadForSTProcess: stProcess
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3347
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3348
    result := Java threadForStProcess: stProcess ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3349
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3350
    ^ result.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3351
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3352
    "Modified: / 26-08-1997 / 19:56:31 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3353
    "Created: / 03-01-1998 / 01:53:41 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3354
    "Modified: / 09-12-2011 / 13:12:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3355
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3356
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3357
makeArrayOf: loadedJavaClass asDescribedBy: className
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3358
    | arrayClass  dimensions |
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3359
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3360
    arrayClass := loadedJavaClass.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3361
    dimensions := className occurrencesOf: $[.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3362
        arrayClass isJavaArrayClass ifTrue: [
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3363
        "is already array (primitive arrays case, like ByteArray etc)"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3364
        dimensions := dimensions - 1.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3365
    ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3366
    dimensions timesRepeat: [ arrayClass := arrayClass javaArrayClass. ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3367
        ^ arrayClass.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3368
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3369
    "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
  3370
    "Modified (format): / 23-10-2011 / 22:30:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3371
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3372
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3373
newThread: name
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3374
    | thread  threadClass  i |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3375
    threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3376
    thread := threadClass basicNew.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  3377
    thread instVarNamed: '_lockWord_' put: 0.
1533
ad8b4acdadc1 - JavaVM
vranyj1
parents: 1531
diff changeset
  3378
    thread instVarNamed: 'name' put: name. "/NOT a Java string, name instvar is char[]!!!!!!"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3379
    thread instVarNamed: 'priority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3380
        put: (threadClass instVarNamed: 'NORM_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3381
    thread instVarNamed: 'single_step' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3382
    thread instVarNamed: 'daemon' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3383
    thread instVarNamed: 'stillborn' put: 0.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3384
    thread instVarNamed: 'threadStatus' put: 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3385
    thread instVarNamed: 'target' put: nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3386
    thread instVarNamed: 'blockerLock' put:
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3387
        ((JavaVM classForName: 'java.lang.Object') basicNew
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3388
            instVarAt: 1 put: 0;
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3389
            yourself).
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3390
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3391
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3392
    "/ that on was only temporarily present in JDK1.1.3 (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3393
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3394
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3395
    (i := thread class instVarOffsetOf: 'initial_stack_memory') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3396
        thread instVarAt: i put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3397
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3398
    thread instVarNamed: 'group' put: (self standardThreadGroup).
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3399
    threadClass classLoader isNil ifTrue: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3400
        thread instVarNamed: 'contextClassLoader' put: self systemClassLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3401
    ] ifFalse: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3402
        thread instVarNamed: 'contextClassLoader' put: threadClass classLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3403
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3404
    ^ thread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3405
1151
vranyj1
parents: 1150
diff changeset
  3406
    "Created: / 03-01-1998 / 01:47:30 / cg"
vranyj1
parents: 1150
diff changeset
  3407
    "Modified: / 27-01-1998 / 00:54:33 / cg"
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3408
    "Modified: / 01-12-2011 / 17:43:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3409
    "Modified: / 19-09-2012 / 16:06:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3410
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3411
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3412
stProcessForJavaThread: jThread
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3413
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3414
    result := Java threadsAt: jThread ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3415
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3416
    ^ result.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3417
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3418
    "Created: / 02-01-1998 / 21:48:27 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3419
    "Modified: / 03-01-1998 / 01:53:55 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3420
    "Modified: / 09-12-2011 / 13:12:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3421
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3423
standardThreadGroup
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3424
    | standardGroup  threadClass |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3425
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3426
    StandardThreadGroup isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3427
        threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3428
        standardGroup := (self classForName: 'java.lang.ThreadGroup') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3429
        standardGroup instVarNamed: 'parent' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3430
        standardGroup instVarNamed: 'name' put: (Java as_String: 'main').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3431
        standardGroup instVarNamed: 'maxPriority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3432
            put: (threadClass instVarNamed: 'MAX_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3433
        standardGroup instVarNamed: 'destroyed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3434
        standardGroup instVarNamed: 'daemon' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3435
        (standardGroup class instVarOffsetOf: 'vmAllowSuspension') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3436
            standardGroup instVarNamed: 'vmAllowSuspension' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3437
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3438
        standardGroup instVarNamed: 'nthreads' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3439
        standardGroup instVarNamed: 'ngroups' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3440
        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
  3441
        StandardThreadGroup := standardGroup.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3442
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3443
    ^ StandardThreadGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3444
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3445
    "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
  3446
    "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
  3447
    "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
  3448
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3450
!JavaVM class methodsFor:'helpers - awt'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3452
commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3453
    |view x y width height ext menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3455
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3457
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3458
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3459
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3460
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3461
    ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3462
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3463
"/    'pReshape ' print. view print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3464
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3465
"/    ' extent: ' print. ext printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3466
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3467
	view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3468
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3469
	(view isTopView
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3470
	or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3471
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3472
	    "/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3473
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3474
	    menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3475
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3476
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3477
		height := height + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3478
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3479
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3480
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3481
	    "/ to prevent a view from not being visible/closable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3482
	    "/ in case Java goes mad ..
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3484
	    (width < 30
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3485
	    or:[height < 10]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3486
		"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3487
		width := 30.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3488
		height := 20.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3489
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3490
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3492
	    view extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3493
	    (view isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3494
		view preferredExtent:ext
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
	    "/ adjust non-resizable views min/max
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3499
	    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3500
		view minExtent notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3501
		    view minExtent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3502
		    view maxExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3503
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3504
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3505
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3506
	    (view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3507
	    and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3508
		menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3509
		menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3510
		    "/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3511
		    y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3512
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3513
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3514
		"/ post a configuration event
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3515
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3516
		    'JAVA: configure: need event' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3517
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3518
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3519
	    (x isNil or:[y isNil]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3520
		Transcript showCR:'bad args to reshape'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3521
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3522
		view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3523
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3524
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3525
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3527
    view isJavaView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3528
	view invalidate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3529
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3530
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3531
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3533
    "Created: / 4.1.1998 / 18:00:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3534
    "Modified: / 5.12.1998 / 13:34:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3535
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3537
createdWindowsView:aView for:aJavaPeer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3538
    "this is only sent with the sun.awt.windows toolkit"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3540
    aJavaPeer instVarNamed:'pData' put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3541
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3542
    JavaWindowGroup isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3543
	JavaWindowGroup := WindowGroup new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3544
	JavaWindowGroup isForModalSubview:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3545
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3546
    aView windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3547
    JavaWindowGroup addView:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3549
    KnownWindows isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3550
	KnownWindows := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3551
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3552
    KnownWindows at:aJavaPeer put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3554
    FirstWindowCreationSemaphore signalIf.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3556
"/'*** ' print. aJavaPeer print. ' -> ' print. aView printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3557
"/(aView isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3558
"/    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3559
"/].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3561
    "Created: / 4.1.1998 / 17:57:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3562
    "Modified: / 28.1.1998 / 22:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3563
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3565
gcForWGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3566
    |jGraphics gc orgX orgY trans tX tY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3568
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3569
    O_WGgraphics_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3570
	O_WGgraphics_pData := (jGraphics class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3571
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3572
    O_WGgraphics_originX isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3573
	O_WGgraphics_originX := (jGraphics class instVarOffsetOf:'originX').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3574
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3575
    O_WGgraphics_originY isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3576
	O_WGgraphics_originY := (jGraphics class instVarOffsetOf:'originY').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3577
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3578
    gc := jGraphics instVarAt:O_WGgraphics_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3580
    trans := gc translation.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3581
    tX := trans x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3582
    tY := trans y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3583
"/    tX := gc translationX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3584
"/    tY := gc translationY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3585
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3586
    orgX := jGraphics instVarAt:O_WGgraphics_originX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3587
    orgY := jGraphics instVarAt:O_WGgraphics_originY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3588
    ((orgX ~~ tX) or:[orgY ~~ tY]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3589
	gc translation:orgX@orgY
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3590
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3591
    ^ gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3593
    "Created: / 8.1.1998 / 00:16:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3594
    "Modified: / 23.12.1998 / 20:27:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3595
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3597
jPeerForView:aView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3598
    ^ KnownWindows keyAtValue:aView ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3600
    "Created: / 15.1.1998 / 13:48:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3601
    "Modified: / 15.1.1998 / 13:48:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3602
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3604
pReshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3605
    |jFramePeer view x y width height menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3606
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3607
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3608
    view := jFramePeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3610
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3611
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3612
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3613
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3614
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3615
"/    'pReshape ' print. view print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3616
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3617
"/    ' extent: ' print. width print. '/' print. height printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3619
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3620
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3621
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3622
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3623
    (view isTopView
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3624
    or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3625
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3626
	"/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3627
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3628
	menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3629
	menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3630
	    "/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3631
	    height := height + menu height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3632
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3633
	view extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3634
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3635
	(view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3636
	and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3637
	    menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3638
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3639
		"/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3640
		y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3641
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3642
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3643
	view origin:x@y extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3644
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3646
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3648
    "Created: / 7.1.1998 / 21:47:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3649
    "Modified: / 5.12.1998 / 13:47:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3650
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3651
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3652
replacementFontFor:name style:styleNr size:size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3653
    |font family style|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3655
    style := 'roman'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3656
    styleNr = 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3657
        style := 'roman'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3658
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3660
    font := Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3661
    font notNil ifTrue:[^ font].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3663
    name = 'Dialog' ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3664
        family := 'helvetica'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3665
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3666
        family := 'courier'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3667
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3669
    ^ Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3670
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3672
topViewsMenu:view
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3673
    |idx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3675
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3676
	view subViews size > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3677
	    (idx := view subViews findFirst:[:v | v isMemberOf:MenuPanel]) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3678
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3679
		^ view subViews at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3680
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3681
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3682
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3683
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3685
    "Modified: / 4.8.1997 / 01:23:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3686
    "Created: / 4.1.1998 / 18:01:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3687
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3688
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3689
viewForWPeer:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3690
    |jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3691
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3692
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3694
    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3695
    O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3696
	O_FramePeer_pNativeWidget := (jPeer class instVarOffsetOf:'pNativeWidget').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3697
	O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3698
	    O_FramePeer_pNativeWidget := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3699
	    O_FramePeer_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3700
		O_FramePeer_pData := (jPeer class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3701
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3702
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3703
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3704
    O_FramePeer_pNativeWidget > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3705
	"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3706
	^ jPeer instVarAt:O_FramePeer_pNativeWidget.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3707
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3708
    ^ jPeer instVarAt:O_FramePeer_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3710
    "Modified: / 19.11.1998 / 01:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3711
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3712
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3713
!JavaVM class methodsFor:'helpers - exceptions'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3714
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3715
throwAbstractMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3716
    ^ 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
  3717
        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
  3718
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3719
    "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
  3720
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3721
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3722
throwArrayIndexOutOfBoundsException: badIndex
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3723
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3724
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3725
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3726
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3727
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3729
    "Created: / 14.1.1998 / 21:36:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3730
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3731
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3732
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3733
throwArrayIndexOutOfBoundsException: theArray _: badIndex
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3734
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3735
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3736
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3737
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3738
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3740
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3741
    "Created: / 8.1.1999 / 15:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3742
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3744
throwArrayStoreException:badArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3745
    ^ self
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3746
        throwExceptionClassName:'java.lang.ArrayStoreException'
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3747
         withMessage:('bad array store: ' , badArray class printString)
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3748
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3749
    "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
  3750
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3752
throwClassCastException
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3753
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3754
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3755
    ^ self throwExceptionClassName: 'java.lang.ClassCastException'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3756
        withMessage: 'cast failed'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3757
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3758
    "Modified: / 07-01-1998 / 15:25:35 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3759
    "Created: / 08-01-1999 / 18:55:31 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3760
    "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
  3761
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3762
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3763
throwClassFormatError
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3764
    ^ self throwClassFormatError: 'Invalid class format'
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3765
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3766
    "Created: / 04-01-1998 / 22:26:09 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3767
    "Modified: / 10-11-1998 / 13:20:31 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3768
    "Created: / 08-08-2011 / 17:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3769
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3770
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3771
throwClassFormatError: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3772
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3773
        throwExceptionClassName:'java.lang.ClassFormatError'
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3774
        withMessage: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3775
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3776
    "Created: / 04-01-1998 / 22:26:09 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3777
    "Modified: / 10-11-1998 / 13:20:31 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3778
    "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
  3779
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3780
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3781
throwClassNotFoundException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3782
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3783
	throwExceptionClassName:'java.lang.ClassNotFoundException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3784
	withMessage:'no such class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3786
    "Created: / 4.1.1998 / 22:25:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3787
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3788
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3789
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3790
throwClassNotFoundException: className
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3791
    ^ self throwExceptionClassName: 'java.lang.ClassNotFoundException'
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3792
        withMessage: 'no such class: ' , className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3793
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3794
    "Created: / 4.1.1998 / 22:26:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3795
    "Modified: / 10.11.1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3796
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3797
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3798
throwDataFormatException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3799
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3800
        throwExceptionClassName:'java.util.zip.DataFormatException'
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3801
        withMessage: message
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3802
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3803
    "Created: / 16-08-2012 / 17:55:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3804
!
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3805
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3806
throwDivisionByZeroException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3807
    DivisionByZeroExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3808
	self halt:'division by zero'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3809
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3810
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3811
	throwExceptionClassName:'java.lang.ArithmeticException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3812
	withMessage:'division by zero'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3814
    "Created: / 8.1.1999 / 14:28:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3815
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3816
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3817
throwException: aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3818
    <resource: #skipInDebuggersWalkBack>
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3819
    | 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
  3820
    ExceptionTrace ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3821
        | tmpMessage |
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3822
        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
  3823
        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
  3824
            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
  3825
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3826
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3827
            log: 'JAVA: exception: ' , aJavaException class fullName , ' ('
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3828
                    , tmpMessage , ')'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3829
            severity: #debug
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3830
            facility: 'JVM'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3831
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3832
    ExceptionDebug ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3833
        "/        self internalError:('JAVA: exception: ' , aJavaException class fullName).
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3834
        (ExceptionDebugPatterns isNilOrEmptyCollection
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3835
            or: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3836
                ExceptionDebugPatterns
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3837
                    anySatisfy: [:pattern | pattern match: aJavaException class fullName ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3838
            ])
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3839
                ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3840
                    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
  3841
                ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3842
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3843
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3844
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3845
    "/ search stack for a javaContext which handles that exception
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3846
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3847
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3848
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3849
    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
  3850
    [ 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
  3851
        (srchCon isJavaContext) ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3852
            method := srchCon method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3853
            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
  3854
            (hPC := method handlerFor: aJavaException at: pc) notNil ifTrue: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3855
                handlerPC := hPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3856
                handlerContext := srchCon
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3857
            ].
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3858
        ] ifFalse:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3859
            srchCon isHandleContext ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3860
                handler := srchCon receiver
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3861
                    handlerForSignal: aJavaException class context: srchCon originator:thisContext sender.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3862
                handler notNil ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3863
                    "We have found a Smalltalk handler for Java exception here"
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3864
                    handlerContext := srchCon.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3865
                ]
1098
vranyj1
parents: 1097
diff changeset
  3866
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3867
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3868
        srchCon := srchCon sender.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3869
    ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3870
    handlerContext isNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3871
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3872
        "/ no JavaHandler ... let smalltalk handle it
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3873
        "/
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3874
        exClass := aJavaException class.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3875
        exClass == (self classNamed: 'java/lang/ThreadDeath') ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3876
            "/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
  3877
            ^ self
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3878
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3879
        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
  3880
        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
  3881
        jMsg notNil ifTrue: [ msg := msg , ': ' , (Java as_ST_String: jMsg). ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3882
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3883
        "/ for our convenience: skip ST contexts
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3884
        "/ (i.e. the handler or debugger will see the javaContext first )
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3885
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3886
        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
  3887
        [ 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
  3888
        con isNil ifTrue: [ con := thisContext sender ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3889
        JavaUnhandledExceptionError
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3890
            raiseWith: aJavaException
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3891
            errorString: msg
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3892
            in: con.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3893
    ] ifFalse: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3894
        handlerContext isJavaContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3895
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3896
            "/ found a Java exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3897
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3898
            handlerContext setPC: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3899
            handlerContext exceptionArg: aJavaException pc: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3900
            handlerContext markForException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3901
            handlerContext unwindAndRestartForJavaException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3902
            self halt: 'should not be reached'.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3903
        ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3904
            | val |
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3905
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3906
            "/ found a Smalltalk exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3907
            "/
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3908
            "/ First, call evaluate the handler (see GenericException>>doCallHandler:
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3909
            val := handler valueWithOptionalArgument: aJavaException.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3910
            "handler fall through - is just like a #return:(aHandlerBlock value)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3911
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3912
            "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
  3913
            rejected (rethrown) - this is not supported yet - we need
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3914
            to somehow indicate that (kind of reject token object returned
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3915
            from handler?)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3916
            thisContext evaluateUnwindActionsUpTo:handlerContext.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3917
            handlerContext return: val.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3918
        ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3919
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3920
    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
  3921
    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3922
    Processor activeProcess terminate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3923
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3924
    "
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3925
     ExceptionTrace := true"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3926
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3927
    "Created: / 07-01-1998 / 15:28:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3928
    "Modified: / 24-12-1999 / 02:33:25 / cg"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3929
    "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
  3930
    "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
  3931
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3932
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3933
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3934
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3935
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3936
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3937
    ex := exClass newWith_String: someMessage.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3938
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3939
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3940
    "Created: / 07-01-1998 / 15:25:09 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3941
    "Modified: / 14-01-1998 / 23:38:30 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3942
    "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
  3943
    "Modified: / 02-11-2011 / 16:54:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3944
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3945
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3946
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage cause: cause
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3947
    | exClass  ex |
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3948
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3949
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3950
    ex := exClass newWith_String: someMessage.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3951
    ex instVarNamed: #cause put: cause.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3952
    ^ self throwException: ex
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3953
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3954
    "Created: / 05-07-2012 / 09:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3955
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3956
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3957
throwExceptionForFinallyIn: context
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3958
    "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
  3959
     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
  3960
     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
  3961
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3962
    |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
  3963
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3964
    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
  3965
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3966
    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
  3967
    pc := context pc.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3968
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3969
    token := JavaContext::FinallyToken new.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3970
    returnContext := thisContext sender sender sender.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3971
    returnContext selector == #return: ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3972
        token
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3973
            context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3974
            selector: #return:;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3975
            exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3976
            value: (returnContext argAt:1).
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3977
    ] ifFalse:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3978
        returnContext selector == #return ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3979
            token
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3980
                context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3981
                selector: #return;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3982
                exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3983
                value: nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3984
        ] ifFalse:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3985
            self error:'Unhandled case, inform libjava developers (JV in particular)' .
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3986
        ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3987
    ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3988
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
  3989
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  3990
    handlerPC := method handlerFor: nil 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
  3991
    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
  3992
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3993
    context setPC: handlerPC.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3994
    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
  3995
    context markForException.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3996
    context restart.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3997
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3998
    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
  3999
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  4000
    "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
  4001
!
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  4002
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4003
throwExceptionInInitializerError:className
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4004
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4005
        throwExceptionClassName:'java.lang.ExceptionInInitializerError'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4006
        withMessage:'error when initializing class: ' , className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4008
    "Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4009
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4010
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4011
throwFileNotFoundException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4012
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4013
        throwExceptionClassName:'java.io.FileNotFoundException'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4014
        withMessage: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4015
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4016
    "Created: / 04-01-1998 / 22:26:09 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4017
    "Modified: / 10-11-1998 / 13:20:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4018
    "Created: / 10-08-2011 / 14:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4019
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4020
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4021
throwIOExceptionWithMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4022
    IOExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4023
	self halt:'IO Exception'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4024
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4025
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4026
	throwExceptionClassName:'java.io.IOException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4027
	withMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4029
    "Created: / 7.1.1998 / 10:34:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4030
    "Modified: / 7.1.1998 / 15:26:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4031
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4032
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4033
throwIllegalAccessError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4034
    ^ 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
  4035
        withMessage: 'illegal access'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4036
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4037
    "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
  4038
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4039
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4040
throwIllegalAccessException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4041
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4042
	throwExceptionClassName:'java.lang.IllegalAccessException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4043
	withMessage:'illegal access'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4044
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4045
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4046
    "Created: / 14.1.1998 / 23:13:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4047
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4048
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4049
throwIllegalArgumentException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4050
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4051
        throwExceptionClassName:'java.lang.IllegalArgumentException'
1151
vranyj1
parents: 1150
diff changeset
  4052
        withMessage: 'illegal argument: ', message
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4053
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4054
    "Modified: / 07-01-1998 / 15:25:35 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4055
    "Created: / 14-01-1998 / 23:13:44 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4056
    "Created: / 07-09-2011 / 14:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4057
!
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4058
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4059
throwIllegalMonitorStateException: message
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4060
    self throwExceptionClassName: 'java.lang.IllegalMonitorStateException'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4061
            withMessage: message.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4062
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4063
    "Created: / 29-11-2011 / 14:21:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4064
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4065
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4066
throwIncompatibleClassChangeError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4067
        ^ 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
  4068
                withMessage: 'illegal change'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4069
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4070
    "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
  4071
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4072
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4073
throwInstantiationException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4074
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4075
	throwExceptionClassName:'java.lang.InstantiationException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4076
	withMessage:'cannot instantiate'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4077
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4078
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4079
    "Created: / 14.1.1998 / 23:15:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4080
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4082
throwInstantiationExceptionFor:aJavaClass
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4083
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4084
        throwExceptionClassName:'java.lang.InstantiationException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4085
        withMessage:('cannot instantiate: ' , aJavaClass javaName)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4087
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4088
    "Created: / 14.1.1998 / 23:17:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4089
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4090
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4091
throwInterruptedException: message
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4092
    ^ self throwExceptionClassName: 'java.lang.InterruptedException'
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4093
        withMessage:message
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4094
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4095
    "Created: / 30-11-2011 / 12:23:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4096
!
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4097
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4098
throwInvocationTargetException: message target: target
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4099
    | exClass  ex |
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4100
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4101
    exClass := self classForName: #'java/lang/reflect/InvocationTargetException' definedBy: nil.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4102
    ex := exClass newWith_String: message.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4103
    ex instVarNamed: #target put: target.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4104
    ^ self throwException: ex
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4105
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4106
    "Created: / 05-07-2012 / 17:48:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4107
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4108
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4109
throwLinkageError: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4110
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4111
        throwExceptionClassName:'java.lang.LinkageError'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4112
        withMessage: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4114
    "Modified: / 10-11-1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4115
    "Created: / 26-11-2010 / 11:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4116
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4117
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4118
throwNegativeArraySizeException: size
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4119
    ^ self
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4120
        throwExceptionClassName: 'java.lang.NegativeArraySizeException'
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4121
        withMessage: 'negative array size: ' , size printString
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4122
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4123
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4124
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4125
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4126
throwNoSuchFieldException
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4127
  ^ 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
  4128
        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
  4129
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4130
    "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
  4131
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4132
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4133
throwNoSuchMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4134
      ^ 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
  4135
              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
  4136
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4137
    "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
  4138
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4139
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4140
throwNullPointerException
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4141
    NullPointerExceptionDebug == true ifTrue:[
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4142
        self halt:'Null Pointer exception'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4143
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4144
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4145
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4146
        throwExceptionClassName:'java.lang.NullPointerException'
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4147
        withMessage:'null pointer'
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4148
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4149
    "Created: / 09-01-1998 / 02:26:08 / cg"
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4150
    "Modified: / 28-01-1998 / 02:30:09 / cg"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4151
    "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
  4152
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4153
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4154
throwNullPointerException:message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4155
    NullPointerExceptionDebug == true ifTrue: [
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4156
        self halt: 'Null Pointer exception'.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4157
    ].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4158
    ^ self throwExceptionClassName: 'java.lang.NullPointerException'
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4159
        withMessage: message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4160
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4161
    "Created: / 09-01-1998 / 02:26:08 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4162
    "Modified: / 28-01-1998 / 02:30:09 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4163
    "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
  4164
    "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
  4165
!
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4166
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4167
throwNumberFormatException
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4168
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4169
	throwExceptionClassName:'java.lang.NumberFormatException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4170
	withMessage:'bad number format'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4172
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4173
    "Created: / 11.1.1998 / 16:08:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4174
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4175
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4176
throwOutOfMemoryError
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4177
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4178
        throwExceptionClassName:'java.lang.OutOfMemoryError'
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4179
        withMessage:'Oops, out of memory!!'
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4180
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4181
    "Created: / 04-01-1998 / 22:26:09 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4182
    "Modified: / 10-11-1998 / 13:20:31 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4183
    "Created: / 30-08-2011 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4184
!
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4185
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4186
throwSecurityException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4187
    JavaClassReader classLoaderQuerySignal
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4188
        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
  4189
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4190
            ^ 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
  4191
                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
  4192
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4193
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4194
    "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
  4195
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4196
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4197
throwSecurityExceptionWith: message
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4198
    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
  4199
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4200
            ^ 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
  4201
                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
  4202
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4203
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4204
    "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
  4205
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4206
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4207
throwSocketException: message
1084
vranyj1
parents: 1083
diff changeset
  4208
    JavaClassReader classLoaderQuerySignal answer: nil
vranyj1
parents: 1083
diff changeset
  4209
        do: [
vranyj1
parents: 1083
diff changeset
  4210
            ^ self throwExceptionClassName: 'java.net.SocketException'
vranyj1
parents: 1083
diff changeset
  4211
                withMessage: message
vranyj1
parents: 1083
diff changeset
  4212
        ].
vranyj1
parents: 1083
diff changeset
  4213
vranyj1
parents: 1083
diff changeset
  4214
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4215
    "Created: / 03-11-2011 / 23:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4216
!
vranyj1
parents: 1083
diff changeset
  4217
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4218
throwZipException
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4219
    ^ self throwZipException:'error in opening zip file'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4221
    "Created: / 27-03-2011 / 16:25:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4222
    "Modified: / 20-07-2012 / 19:15:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4223
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4224
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4225
throwZipException: message
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4226
    ^ self throwExceptionClassName: 'java.util.zip.ZipException'
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4227
           withMessage: 'error in opening zip file'.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4228
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4229
    "Created: / 20-07-2012 / 19:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4230
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4232
!JavaVM class methodsFor:'helpers - io'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4233
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4234
anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4235
    |jStream fileNo file|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4237
    jStream := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4238
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4239
    file := self validateFile:jStream.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4240
    file == Stdin ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4241
        file := StdinReplacementFileQuerySignal raiseRequest.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4242
        file isNil ifTrue:[
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4243
            file := Stdin
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4244
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4245
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4247
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4249
    (file ~~ Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4250
    and:[file ~~ Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4251
    and:[file ~~ Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4252
    and:[file ~~ Transcript]]]) ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4253
        file close.
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4254
    ] ifFalse:[
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4255
        self breakPoint: #jv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4256
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4257
    self setOpenFile:nil at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4259
    fileNo := jStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4260
    fileNo isInteger ifFalse:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4261
        "/ JDK 1.1.3
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4262
        fileNo instVarNamed:'fd' put:0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4263
    ] ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4264
        "/ JDK 1.0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4265
        jStream instVarNamed:'fd' put:0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4266
    ].
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4267
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4268
    "Created: / 04-02-1998 / 15:22:03 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4269
    "Modified: / 14-10-1998 / 15:10:07 / cg"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4270
    "Modified: / 28-07-2012 / 02:45:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4271
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4273
anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4274
    |bytes offset count stream nRead|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4276
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4277
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4278
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4280
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4282
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4283
    bytes class isBytes ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4284
        self halt.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4285
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4286
    stream == Stdin ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4287
        stream := StdinReplacementFileQuerySignal raiseRequest.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4288
        stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4289
            ^ -1 "/ 0  EOF
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4290
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4291
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4293
    FileIOTrace ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4294
        ('JAVA: read ' , count printString , ' bytes from ' , stream pathName) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4295
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4297
    stream isPositionable ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4298
        "/ mhmh - some kind of socket or pipe
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4299
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4300
        stream readWait.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4301
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4302
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4303
    count == 0 ifTrue:[^0].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4305
    Stream readErrorSignal handle:[:ex |
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4306
        nRead := -1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4307
    ] do:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4308
        nRead := stream nextAvailableBytes:count into:bytes startingAt:offset+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4309
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4310
    nRead == 0 ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4311
        stream atEnd ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4312
            FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4313
                ('JAVA: at EOF ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4314
            ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4315
            ^ -1
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4316
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4317
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4318
    count ~~ nRead ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4319
        FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4320
            ('JAVA: only got ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4321
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4322
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4323
    ^ nRead
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4324
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4325
    "Created: / 04-02-1998 / 15:20:00 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4326
    "Modified: / 10-11-1998 / 19:56:47 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4327
    "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
  4328
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4330
anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4331
    |bytes offset count stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4333
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4334
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4335
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4337
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4338
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4339
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4340
        stream isFileStream ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4341
            Logger log: ('write ' , count printString , ' bytes to ' , stream pathName) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4342
        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4343
            stream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4344
                stream ~~ Stderr ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4345
                    Logger log: ('write ' , count printString , ' bytes to ' , stream displayString) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4346
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4347
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4348
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4349
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4351
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4352
    Stream writeErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4353
        ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4354
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4355
        Socket brokenConnectionSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4356
            ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4357
        ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4358
            stream isBinary ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4359
                stream nextPutBytes:count from:bytes startingAt:offset+1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4360
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4361
                stream nextPutAll: (bytes asString copyFrom: offset + 1 to: offset + count).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4362
            ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4363
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4364
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4365
        stream == Transcript ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4366
            Transcript endEntry
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4367
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4368
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4370
    "Created: / 04-02-1998 / 15:23:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4371
    "Modified: / 16-02-1999 / 11:32:45 / cg"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4372
    "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
  4373
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4375
checkWritePermissionOfDirectory:dir message:msg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4376
    |answer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4377
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4378
    (PermittedDirectories notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4379
    and:[PermittedDirectories includes:dir]) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4380
	FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4381
	    answer := Dialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4382
		    confirmWithCancel:msg withCRs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4383
			       labels:#('no' 'grant')
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4384
			       values:#(false true)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4385
			      default:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4386
	    answer == false ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4387
		^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4388
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4390
	    (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir pathName , ''') ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4391
	    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4392
		PermittedDirectories isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4393
		    PermittedDirectories := Set new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4394
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4395
		PermittedDirectories add:dir.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4396
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4397
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4398
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4399
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4401
    "Created: / 3.12.1998 / 15:07:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4402
    "Modified: / 3.12.1998 / 15:16:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4403
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4404
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4405
commonClose:nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4406
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4407
    | fdobj fd stream |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4408
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4409
    fd    := fdobj instVarNamed: #fd.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4410
    fd == -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4411
        "Never opened or already closed"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4412
        ^self.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4413
    ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4414
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4415
    stream notNil ifTrue:[
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4416
        stream isView ifTrue:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4417
            "Some applications close stdout/stderr (such as Apache Tomcat).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4418
             We don't want that, so ignore a close in that case"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4419
            stream ~~ Transcript ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4420
                self breakPoint: #jv.
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4421
            ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4422
        ] ifFalse:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4423
            (stream ~~ Stdout and:[stream ~~ Stderr and:[stream ~~ Stdin]]) ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4424
                stream close.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4425
            ]
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4426
        ]
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4427
    ] ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4428
        self breakPoint: #jv.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4429
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4430
    self setOpenFile: nil at: fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4431
    fdobj instVarNamed:#fd put: -1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4432
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4433
    "Created: / 10-08-2011 / 14:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4434
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4435
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4436
commonOpen:nativeContext forAppend:forAppend
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4437
    |fs fd fn nm dir stream fileNo readonly|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4438
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4439
    fs := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4440
    fd := fs instVarNamed:'fd'.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4441
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4442
        "/self halt:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4443
        self internalError:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4444
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4445
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4446
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4447
    nm := nativeContext argAt:1.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4448
    nm := Java as_ST_String:nm.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4450
    FileOpenTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4451
        ('JAVA: opening ' , nm) infoPrintCR.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4452
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4453
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4454
    fn := nm utf8Decoded asFilename.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4455
    dir := fn directory pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4457
    readonly := false.
904
vranyj1
parents: 903
diff changeset
  4458
"/    (PermittedDirectories notNil
vranyj1
parents: 903
diff changeset
  4459
"/    and:[PermittedDirectories includes:dir]) ifFalse:[
vranyj1
parents: 903
diff changeset
  4460
"/        FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4461
"/            answer := Dialog
904
vranyj1
parents: 903
diff changeset
  4462
"/                    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
vranyj1
parents: 903
diff changeset
  4463
"/                               labels:#('no' 'grant' 'readonly')
vranyj1
parents: 903
diff changeset
  4464
"/                               values:#(false true #readonly)
vranyj1
parents: 903
diff changeset
  4465
"/                              default:3.
vranyj1
parents: 903
diff changeset
  4466
"/            answer == false ifTrue:[
vranyj1
parents: 903
diff changeset
  4467
"/                self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
vranyj1
parents: 903
diff changeset
  4468
"/                ^ self
vranyj1
parents: 903
diff changeset
  4469
"/            ].
vranyj1
parents: 903
diff changeset
  4470
"/            readonly := (answer == #readonly).
vranyj1
parents: 903
diff changeset
  4471
"/
vranyj1
parents: 903
diff changeset
  4472
"/            readonly ifFalse:[
vranyj1
parents: 903
diff changeset
  4473
"/                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
vranyj1
parents: 903
diff changeset
  4474
"/                ifTrue:[
vranyj1
parents: 903
diff changeset
  4475
"/                    PermittedDirectories isNil ifTrue:[
vranyj1
parents: 903
diff changeset
  4476
"/                        PermittedDirectories := Set new
vranyj1
parents: 903
diff changeset
  4477
"/                    ].
vranyj1
parents: 903
diff changeset
  4478
"/                    PermittedDirectories add:dir.
vranyj1
parents: 903
diff changeset
  4479
"/                ]
vranyj1
parents: 903
diff changeset
  4480
"/            ]
vranyj1
parents: 903
diff changeset
  4481
"/        ]
vranyj1
parents: 903
diff changeset
  4482
"/    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4484
    readonly ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4485
        (fn exists and:[fn isReadable not]) ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4486
            ^self throwFileNotFoundException: 'File is not readable'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4487
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4488
        stream := fn readStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4489
    ] ifFalse:[
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4490
"/        fn exists ifFalse:[
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4491
"/            ^self throwFileNotFoundException: 'File does not exist'
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4492
"/        ].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4493
        fn isDirectory ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4494
             ^self throwFileNotFoundException: 'File is directory'
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4495
        ].
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4496
        (fn exists and:[fn isWritable not]) ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4497
            ^self throwFileNotFoundException: 'File does not writable'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4498
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4499
        forAppend ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4500
            stream := self commonOpenStreamUsing:[fn appendingWriteStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4501
        ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4502
            stream := self commonOpenStreamUsing:[fn writeStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4503
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4504
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4505
    stream isNil ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4506
        self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4507
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4508
    stream binary.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4509
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4510
    fileNo := self addOpenFile:stream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4512
    FileOpenTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4513
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4514
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4516
    fd instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4517
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4518
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4519
    fs finalizationLobby registerChange: fs
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4520
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4521
    "Created: / 07-04-1998 / 19:14:09 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4522
    "Modified: / 04-01-1999 / 14:34:42 / cg"
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4523
    "Modified: / 12-12-2012 / 23:43:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4524
!
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4525
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4526
commonOpenStreamUsing: aBlock
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4527
    "Helper for opening a stream. Catches 'too many files' open error
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4528
     and tries to GC to cleanup if necessary"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4529
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4530
    | stream retry |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4531
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4532
    retry := false.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4533
    [ stream := aBlock value ] on:OpenError do:[:ex|
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4534
        (ex errorCode) == (OperatingSystem errorNumberFor:#EMFILE) ifTrue:[
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4535
            "Worst case, try to cleanup"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4536
            Logger log: 'maximum number of open files reached, forcing finalization...' severity: #warn facility: #JVM.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4537
            [
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4538
                FinalizationLobby finalizeNow.
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4539
                Delay waitForSeconds: 5. "/Give Java finalization thread a chance to clean up
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4540
                ObjectMemory garbageCollect.
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4541
                retry := true.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  4542
                PerfCounters printOpenExternalStreamsOn: Stderr.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4543
            ] on: Error do:[:ex|
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4544
                Logger log: 'failed to force finalization: ', ex description severity: #error facility: #JVM
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4545
            ].
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4546
        ] ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4547
            ex pass.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4548
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4549
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4550
    retry ifTrue:[
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4551
        stream := aBlock value.
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4552
        Logger log: 'good, forced finalization solved the problem' severity: #info facility: #JVM
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4553
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4554
    ^stream
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4555
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4556
    "Created: / 23-07-2012 / 19:33:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4557
    "Modified: / 14-08-2012 / 02:25:06 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4558
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4559
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4560
fileStreamForReading:name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4561
    |fn stream tryAlongClassPath|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4563
    FileOpenTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4564
        ('JAVA: opening for read:' , name) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4565
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4566
    fn := name asFilename.
904
vranyj1
parents: 903
diff changeset
  4567
    fn exists  ifFalse:[
vranyj1
parents: 903
diff changeset
  4568
        ^self throwFileNotFoundException: 'File does not exists'
vranyj1
parents: 903
diff changeset
  4569
    ].
vranyj1
parents: 903
diff changeset
  4570
    fn isDirectory ifTrue:[
vranyj1
parents: 903
diff changeset
  4571
        ^self throwFileNotFoundException: 'File is directory'
vranyj1
parents: 903
diff changeset
  4572
    ].
vranyj1
parents: 903
diff changeset
  4573
    fn isReadable  ifFalse:[
vranyj1
parents: 903
diff changeset
  4574
        ^self throwFileNotFoundException: 'File is not readable'
vranyj1
parents: 903
diff changeset
  4575
    ].
vranyj1
parents: 903
diff changeset
  4576
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4577
    stream := self commonOpenStreamUsing:[fn readStream].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4578
    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4580
    fn isAbsolute ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4581
        "/ if not absolute, try along classPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4582
        "/ This allows classes to open local files (JEdit)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4583
        "/ even if they have NOT been loaded by a Java classLoader.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4584
        "/ Only do this for image files
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4585
        "/ (and maybe some other config files in the future),
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4586
        "/ to avoid security holes.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4587
        tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4588
"/        tryAlongClassPath := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4589
"/        (fn hasSuffix:'gif') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4590
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4591
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4592
"/        (fn hasSuffix:'jpg') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4593
"/            tryAlongClassPath := true.
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
        tryAlongClassPath ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4597
            Java effectiveClassPath do:[:dirName |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4598
                |fn|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4600
                (fn := dirName asFilename construct:name) exists ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4601
                    fn isReadable ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4602
                        self throwFileNotFoundException: 'File is not readable'.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4603
                        ^nil
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4604
                    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4605
                    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4606
                    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4607
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4608
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4609
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4610
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4611
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4613
    "Modified: / 27-01-1999 / 18:54:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4614
    "Modified: / 23-07-2012 / 19:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4615
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4617
fixFilename:path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4618
    OperatingSystem isMSDOSlike ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4619
	(#($/ $\) includes:(path at:1)) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4620
	    (path at:3) == $: ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4621
		^ path copyFrom:2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4622
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4623
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4624
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4625
    ^ path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4627
    "Created: / 20.10.1998 / 20:58:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4628
    "Modified: / 20.10.1998 / 21:06:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4629
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4630
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4631
validateFile:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4632
    |fileNo file|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4634
    fileNo := self validateFileNo:javaStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4635
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4637
    file isNil ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4638
        self throwIOExceptionWithMessage:('stream with file descriptor %1 closed or was never open' bindWith: fileNo).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4639
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4640
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4642
    ^ file
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4643
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4644
    "Created: / 04-01-1998 / 16:50:38 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4645
    "Modified: / 28-07-2012 / 02:44:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4647
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4648
validateFileDescriptor: jFileDescriptor
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4649
    "Validates given instance of java.io.FileDescriptor.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4650
     If it is valid, return underlying Smalltalk stream,
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4651
     otherwise, throws java.io.IOException"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4652
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4653
    | fileNo stream |
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4654
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4655
    fileNo := jFileDescriptor instVarNamed:'fd'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4656
    ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4657
        fileNo := jFileDescriptor instVarNamed:'handle'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4658
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4659
    fileNo isInteger ifFalse:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4660
        self throwIOExceptionWithMessage:'Invalid fd in java.io.FileDescriptor'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4661
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4662
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4663
    fileNo == -1 ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4664
        self throwIOExceptionWithMessage:'java.io.FileDescriptor not open'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4665
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4666
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4667
    stream := self getOpenFileAt:fileNo.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4668
    stream isNil ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4669
        self throwIOExceptionWithMessage:'Stale descriptor in java.io.FileDescriptor (VM stream does not exists)'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4670
        ^nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4671
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4672
    ^ stream.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4673
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4674
    "Created: / 06-07-2012 / 23:02:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4675
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4676
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4677
validateFileNo:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4678
    |fileNo descriptor|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4680
    "/ JDK 1.1.3 has fileDescriptor wrapped
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4681
    "/ JDK 1.0 has it directly as integer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4683
    fileNo := javaStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4684
    fileNo isInteger ifFalse:[
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4685
        descriptor := fileNo.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4686
        descriptor notNil ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4687
            fileNo := descriptor instVarNamed:'fd'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4688
            ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4689
                fileNo := descriptor instVarNamed:'handle'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4690
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4691
            fileNo isInteger ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4692
                self throwIOExceptionWithMessage:('invalid fd value in FileDescriptor (%1 [%2])' bindWith: fileNo with: fileNo class).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4693
                ^self
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4694
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4695
            ^fileNo
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4696
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4697
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4699
    fileNo isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4700
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4701
"/        self internalError:'invalid fileNo in read'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4702
        self throwIOExceptionWithMessage:('invalid fd value in stream object (%1 [%2])' bindWith: fileNo with: fileNo class).
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4703
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4704
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4706
    ^ fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4707
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4708
    "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
  4709
    "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
  4710
    "Modified: / 18-08-2011 / 20:03:37 / jv"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4711
    "Modified: / 28-07-2012 / 02:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4712
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4713
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4714
!JavaVM class methodsFor:'helpers - reflection'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4715
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4716
classForJavaClassObject:aJavaClassObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4717
    "given java.lang.class instance, return the real class for it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4718
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4719
    ^ self reflection classForJavaClassObject:aJavaClassObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4720
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4721
    "Created: / 23-01-1998 / 17:44:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4722
    "Modified: / 03-02-2011 / 21:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4723
    "Modified: / 09-02-2011 / 01:02:17 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4724
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4725
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4726
javaClassObjectForClass: aClass
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4727
    "given a real class, return the corresponding java.lang.class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4728
     instance for it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4729
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4730
"/    | class |
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4731
"/
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4732
"/    "find reflection of StClass in the Java World"
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4733
"/    (JavaObjectDictionary new hasReflection: aClass name) ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4734
"/        class := JavaObjectDictionary new reflectionOf: aClass name
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4735
"/    ] ifFalse: [ class := aClass. ].
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4736
    ^ self reflection javaClassObjectForClass: aClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4738
    "Created: / 23-01-1998 / 17:43:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4739
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4740
    "Modified: / 17-01-2011 / 19:24:22 / kursjan <kursjan@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4741
    "Modified: / 28-01-2011 / 14:31:25 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4742
    "Modified: / 31-07-2012 / 00:49:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4744
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4745
javaConstructorObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4746
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4747
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4748
    self breakPoint:#mh info:'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4749
    ^ self reflection javaConstructorObjectForMethod: method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4751
    "Modified: / 09-02-2011 / 00:58:09 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4753
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4754
javaFieldObjectForField: aJavaField in: aJavaLangClass
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4755
    "given a java field, return the corresponding java.lang.Field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4756
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4757
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4758
        See OpenJDK7 source:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4759
        jdk7/hotspot/src/share/vm/runtime/reflection.cpp,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4760
        oop Reflection::new_field"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4761
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4762
    | field  clazz  name  slot  type  modifiers |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4764
    clazz := aJavaLangClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4765
    name := self reflection javaStringObjectForString: aJavaField name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4766
                interned: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4767
    slot := aJavaField index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4768
    type := self javaClassObjectForClass: aJavaField typeClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4769
    modifiers := aJavaField accessFlags.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4770
    field := (self classForName: 'java.lang.reflect.Field') new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4771
    field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4772
        instVarNamed: #clazz put: clazz;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4773
        instVarNamed: #name put: name;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4774
        instVarNamed: #slot put: slot;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4775
        instVarNamed: #type put: type;
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4776
        instVarNamed: #modifiers put: modifiers;
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4777
        yourself.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4778
    aJavaField annotations
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4779
        ifNotNil: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4780
            field instVarNamed: #annotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4781
                put: aJavaField annotations runtimeVisible rawAnnotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4782
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4783
    ^ field.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4785
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4786
    "Created: / 22-11-2010 / 17:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4787
    "Modified: / 09-02-2011 / 01:06:20 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4788
    "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
  4789
    "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
  4790
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4791
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4792
javaMethodObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4793
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4794
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4795
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4796
    ^ self reflection javaMethodObjectForMethod:method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4798
    "Modified: / 28-02-2011 / 17:08:36 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4799
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4800
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4801
methodForJavaConstructorObject:constructor
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4802
    "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4803
     it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4804
    self breakPoint:#mh info: 'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4805
    ^ self reflection methodForJavaConstructorObject: constructor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4807
    "Modified: / 09-02-2011 / 00:59:43 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4808
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4809
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4810
methodForJavaMethodObject:aJavaMethodObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4811
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4812
        Given an instance of java.lang.reflect.Method, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4813
        real method associated with it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4814
   ^ self reflection methodForJavaMethodObject:aJavaMethodObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4816
    "Modified: / 07-02-2011 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4817
    "Modified: / 28-02-2011 / 16:58:05 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4818
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4819
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4820
!JavaVM class methodsFor:'monitors'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4821
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4822
getJavaMonitorFor:someObject
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4823
    | mon |
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4824
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4825
    "/    JV@2012-04-13: Removed the critical section - this method should be called
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4826
    "/                   only when interrupts are blocked
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4827
    "/    LockTableAccess
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4828
    "/        critical: [
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4829
    mon := LockTable at:someObject ifAbsent:nil.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4830
    mon isNil ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4831
        LockTable at:someObject put:(mon := JavaMonitor for:someObject)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4832
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4833
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4834
"/        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4835
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4836
    ^ mon
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4837
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4838
    "Created: / 02-01-1998 / 19:01:52 / cg"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4839
    "Modified: / 30-11-2011 / 20:40:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4840
    "Modified: / 13-04-2012 / 00:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4841
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4842
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4843
monitorEnter:someObject in:aJavaContext
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4844
    | thisProcess  wasBlocked  lockWordOrJavaMonitor |
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4845
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4846
    self assert:(aJavaContext isNil or:[ aJavaContext isJavaContext ]).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4847
    someObject isNil ifTrue:[
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4848
        self throwNullPointerException.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4849
        self breakPoint:#mh.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4850
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4851
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4852
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4853
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4854
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4855
            log:('MONENTER: entering monitor for %1 in %2'
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4856
                    bindWith:(self monitorFriendlyPrintStringOf:someObject)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4857
                    with:thisProcess name)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4858
            severity:#debug
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4859
            facility:#JVM.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4860
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4861
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4862
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4863
    "/ Fetch the lockword. If it is thinlock, iflate it
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4864
    lockWordOrJavaMonitor := someObject getJavaLockWord.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4865
    lockWordOrJavaMonitor class == SmallInteger ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4866
        self inflateLockFor: someObject lockword: lockWordOrJavaMonitor
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4867
    ] ifFalse:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4868
        lockWordOrJavaMonitor class ~~ JavaMonitor ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4869
            self internalError: 'lockWord does not contain SmallIntefer nor JavaMonitor!!'.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4870
        ]
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4871
    ].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4872
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4873
    "/ Now, we're sure that the lock is fat JavaMonitor, enter it
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4874
    self enterMonitor:someObject ofProcess:thisProcess.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4875
"/    aJavaContext notNil ifTrue:[aJavaContext addMonitor:someObject].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4876
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4877
    wasBlocked ifFalse:[ OperatingSystem unblockInterrupts ].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4878
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4879
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4880
        Logger
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4881
            log:'MONENTER: monitor entered in ' , thisProcess name
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4882
            severity:#debug
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4883
            facility:#JVM.
1476
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
    "Created: / 08-11-2011 / 15:15:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4887
    "Modified: / 27-08-2012 / 11:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4888
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4889
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4890
monitorExit: someObject in: aJavaContext
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4891
    | thisProcess  wasBlocked|
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4892
"/    self assert: (aJavaContext isJavaContext).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4893
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4894
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4895
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4896
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4897
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4898
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4899
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4900
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4901
            log: ('MONEXIT: leaving monitor for %1 in %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4902
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4903
                    with: thisProcess name) , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4904
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4905
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4906
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4907
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4908
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4909
    self leaveMonitor: someObject ofProcess: thisProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4910
"/    aJavaContext notNil ifTrue:[aJavaContext removeMonitor: someObject].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4911
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4912
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4913
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4914
        Logger
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4915
            log: 'MONEXIT: monitor left in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4916
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4917
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4918
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4919
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4920
    "Created: / 08-11-2011 / 15:17:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4921
    "Modified: / 27-08-2012 / 11:49:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4922
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4923
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4924
notify: obj
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4925
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4926
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4927
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4928
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4929
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4930
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4931
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4932
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4933
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4934
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4935
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4936
    mon notify.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4937
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4938
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4939
    "Created: / 22-11-2011 / 13:26:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4940
    "Modified: / 26-08-2012 / 18:39:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4941
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4942
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4943
notifyAll: obj
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4944
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4945
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4946
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4947
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4948
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4949
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4950
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4951
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4952
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4953
        ^self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4954
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4955
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4956
    mon notifyAll.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4957
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4958
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4959
    "Created: / 22-11-2011 / 13:26:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4960
    "Modified: / 26-08-2012 / 18:39:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4961
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4962
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4963
releaseMonitorsOfUnwindingContext: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4964
    "Forcibly releases all monitors acquired by given context.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4965
     Use by unwind handlers"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4966
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4967
    | thisProcess  wasBlocked receiver lockWord |
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4968
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4969
        Logger
1486
48012ce29afd - TestletTestCaseProxy
vranyj1
parents: 1481
diff changeset
  4970
            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
  4971
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4972
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4973
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4974
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4975
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4976
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4977
    receiver := aJavaContext acquiredMonitors.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4978
    receiver notNil ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4979
        lockWord := receiver getJavaLockWord.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4980
    ] ifFalse:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4981
        lockWord := 0.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4982
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4983
%{
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4984
    if (lockWord != __MKINT(0)) {
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4985
      __monitorExit(receiver);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4986
    }
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4987
%}.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4988
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4989
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4990
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4991
        Logger
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4992
            log: ('UNWIND HANDLER: leftover monitors left for ' , aJavaContext printString )
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4993
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4994
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4995
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4996
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4997
    "Created: / 05-04-2012 / 11:35:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4998
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4999
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5000
sleepForTimeout: tmo state: state
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5001
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5002
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5003
    | thisProcess |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5004
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5005
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5006
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5007
        thisProcess clearInterrupted.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5008
        self throwInterruptedException: 'process was interrupted before/during sleep !!?'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5009
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5010
    thisProcess state: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5011
    (Delay forMilliseconds: tmo) waitWithState: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5012
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5013
        thisProcess clearInterrupted.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5014
        self throwInterruptedException: 'process was interrupted before/during sleep !!?'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5015
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5016
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5017
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5018
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5019
    "Created: / 30-11-2011 / 11:04:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5020
    "Modified (format): / 26-08-2012 / 18:40:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5021
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5022
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5023
waitOn: obj forTimeout: tmo state: state
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5024
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5025
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5026
    | wasBlocked  thisProcess  mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5027
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5028
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5029
        thisProcess clearInterrupted.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5030
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5031
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5032
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5033
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5034
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5035
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5036
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5037
        self throwIllegalMonitorStateException: 'monitor was not owned on wait by ' , thisProcess printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5038
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5039
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5040
    state notNil ifTrue: [ thisProcess state: state ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5041
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5042
    mon waitForMilliseconds: tmo.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5043
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5044
        thisProcess clearInterrupted.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5045
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5046
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5047
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5048
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5049
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5050
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5051
    "Created: / 22-11-2011 / 13:20:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5052
    "Modified: / 26-08-2012 / 18:40:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5053
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5054
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5055
!JavaVM class methodsFor:'monitors-internal'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5056
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5057
acquireMonitor: obj ofProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5058
    "Acquire* (stay in the queue and get it) monitor.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5059
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5060
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5061
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5062
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5063
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5064
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5065
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5066
            log: ('acquiring monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5067
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5068
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5069
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5070
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5071
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5072
    mon acquire.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5073
    self assert:(mon isOwnedBy: aProcess).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5074
"/    self acquiredMonitorsOf: aProcess add: obj.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5075
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5076
"/    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5077
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5078
    "Created: / 17-11-2011 / 19:01:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5079
    "Modified: / 27-08-2012 / 23:24:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5080
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5081
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5082
acquireMonitorAndNotifyAll: handle
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5083
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5084
    mon := handle getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5085
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5086
    self notifyAll: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5087
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5088
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5089
    "Created: / 29-11-2011 / 14:24:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5090
    "Modified: / 27-08-2012 / 01:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5091
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5092
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5093
acquireMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5094
    "will try to acquire all entered monitors of process"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5095
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5096
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5097
    (self hasEnteredMonitorsOfProcess: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5098
        enteredMonitors := self copyEnteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5099
        self assert: enteredMonitors notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5100
        enteredMonitors do: [:each | self acquireMonitor: each ofProcess: 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 / 17:16:21 / 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
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5106
acquiredMonitorsOf: aProcess add: anyObject
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5107
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5108
    ^ (self acquiredMonitorsOfProcess: aProcess) add: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5109
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5110
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5111
    "Created: / 17-11-2011 / 18:29:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5112
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5113
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5114
acquiredMonitorsOf: aProcess remove: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5115
"/    self assert: ((self acquiredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5116
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5117
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5118
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5119
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5120
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5121
    (self acquiredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5122
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5123
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5124
    "Created: / 17-11-2011 / 18:40:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5125
    "Modified: / 11-04-2012 / 23:37:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5126
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5127
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5128
acquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5129
    ^ AcquiredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5130
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5131
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5132
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5133
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5134
            monitors
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5135
        ]
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5136
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5137
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5138
    "Created: / 17-11-2011 / 18:29:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5139
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5140
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5141
acquiredMonitorsOfProcessAt: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5142
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5143
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5144
    ^ AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5145
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5146
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5147
    "Created: / 17-11-2011 / 17:03:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5148
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5149
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5150
copyAcquiredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5151
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5152
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5153
    ^ (AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5154
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5155
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5156
    "Created: / 17-11-2011 / 19:23:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5157
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5158
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5159
copyEnteredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5160
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5161
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5162
    ^ (EnteredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5163
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5164
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5165
    "Created: / 17-11-2011 / 19:22:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5166
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5167
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5168
countAcquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5169
    | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5170
    acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5171
    ^ acquiredMonitors isNil ifTrue: [ 0 ] ifFalse: [ acquiredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5172
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5173
    "Created: / 17-11-2011 / 18:23:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5174
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5175
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5176
countEnteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5177
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5178
    enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5179
    ^ enteredMonitors isNil ifTrue: [ 0 ] ifFalse: [ enteredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5180
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5181
    "Created: / 17-11-2011 / 17:14:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5182
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5183
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5184
enterMonitor: obj ofProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5185
    "registers itself as one of processes wanting monitor and then tries to acquire it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5186
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5187
    | mon objInLists |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5188
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5189
        MonitorTraceId := MonitorTraceId + 1.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5190
        objInLists := { obj . MonitorTraceId }
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5191
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5192
        objInLists := obj
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5193
    ].
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5194
"/    self enteredMonitorsOf: aProcess add: objInLists.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5195
    mon := obj  getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5196
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5197
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5198
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5199
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5200
            log: ('[trace id %3] Entering monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5201
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5202
                    with: aProcess id
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5203
                    with: MonitorTraceId)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5204
            severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5205
            facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5206
            originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5207
            "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5208
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5209
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5210
    self assert: (mon isOwnedBy: aProcess).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5211
"/    self acquiredMonitorsOf: aProcess add: objInLists.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5212
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: objInLists).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5213
"/    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: objInLists).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5214
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5215
    "Created: / 17-11-2011 / 19:03:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5216
    "Modified: / 27-08-2012 / 23:21:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5217
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5218
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5219
enteredMonitorsOf: aProcess add: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5220
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5221
    ^ (self enteredMonitorsOfProcess: aProcess) addLast: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5222
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5223
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5224
    "Created: / 17-11-2011 / 16:25:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5225
    "Modified: / 13-04-2012 / 01:05:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5226
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5227
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5228
enteredMonitorsOf: aProcess remove: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5229
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5230
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5231
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5232
        self assert: ((self enteredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5233
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5234
        self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5235
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5236
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5237
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5238
    (self enteredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5239
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5240
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5241
    "Created: / 17-11-2011 / 18:40:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5242
    "Modified: / 11-04-2012 / 23:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5243
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5244
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5245
enteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5246
    ^ EnteredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5247
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5248
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5249
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5250
            EnteredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5251
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5252
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5253
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5254
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5255
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5256
    "Modified: / 17-11-2011 / 19:22:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5257
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5258
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5259
enteredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5260
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5261
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5262
    ^ EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5263
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5264
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5265
    "Created: / 16-11-2011 / 15:37:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5266
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5267
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5268
exitOwnedMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5269
   |thisProcess monitors|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5270
   thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5271
   monitors := self acquiredMonitorsOfProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5272
   monitors do: [:each | self assert: (each isOwnedBy:thisProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5273
    each exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5274
    ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5275
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5276
    "Created: / 05-12-2011 / 21:15:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5277
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5278
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5279
has: aProcess enteredMonitorFor: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5280
    ^ (self enteredMonitorsOfProcess: aProcess) includes: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5281
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5282
    "Created: / 17-11-2011 / 16:28:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5283
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5284
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5285
hasAcquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5286
   | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5287
   acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5288
   ^ acquiredMonitors isNil
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5289
   ifTrue: [ false ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5290
           ifFalse: [ acquiredMonitors size > 0 ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5291
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5292
    "Created: / 17-11-2011 / 17:07:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5293
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5294
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5295
hasEnteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5296
   | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5297
   enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5298
   ^ enteredMonitors isNil ifTrue: [ false ] ifFalse: [ enteredMonitors size > 0].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5299
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5300
    "Created: / 17-11-2011 / 17:09:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5301
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5302
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5303
inflateLockFor: obj lockword: lw
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5304
     | threadId count mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5305
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5306
    threadId = __MKINT(__LOCKWORD_TID_GET(lw));
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5307
    count =    __MKINT(__LOCKWORD_CNT_GET(lw));
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5308
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5309
    ^ JavaMonitor for: obj thread: threadId nestedLockCount: count.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5310
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5311
    "Modified (format): / 27-08-2012 / 15:34:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5312
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5313
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5314
leaveMonitor: obj ofProcess: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5315
    "Leave* (release and never come back, exit) monitor owned by given project.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5316
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5317
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5318
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5319
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5320
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5321
    "/self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5322
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5323
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5324
        log: ('[trace id %3] leaving monitor %1 owned by thread: %2 '
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5325
                bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5326
                with: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5327
                with: (self enteredMonitorsOfProcess: aProcess) last second)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5328
        severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5329
        facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5330
        originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5331
        "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5332
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5333
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5334
    mon exit.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5335
"/    self acquiredMonitorsOf: aProcess remove: obj.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5336
"/    self enteredMonitorsOf: aProcess remove: obj.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5337
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5338
    "Created: / 17-11-2011 / 18:46:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5339
    "Modified: / 27-08-2012 / 23:22:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5340
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5341
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5342
leaveMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5343
    "Leave* (release and never come back, exit) all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5344
     Called when cleaning up after process death or when handling smalltalk (non-java) exceptions
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5345
     (such an exception in native method)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5346
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5347
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5348
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5349
    monitors := EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5350
    monitors notNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5351
        monitors do: [:obj |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5352
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5353
            | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5354
            mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5355
            mon notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5356
                (mon isOwnedBy: aProcess) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5357
                    Logger
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5358
                        log: ('leaving monitor owned by dying thread: ' , aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5359
                        severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5360
                        facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5361
                    self breakPoint: #jv.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5362
                    mon exit
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5363
                ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5364
            ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5365
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5366
        EnteredMonitorsPerProcess removeKey: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5367
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5368
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5369
    "Created: / 17-11-2011 / 16:51:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5370
    "Modified (format): / 27-08-2012 / 11:37:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5371
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5372
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5373
monitorExit: someObject in: aJavaContext ifOwnedBy: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5374
    | monitor |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5375
    monitor := someObject getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5376
    (monitor isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5377
        self monitorExit: someObject in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5378
    ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5379
        MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5380
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5381
                log: ('%1 trying to exit monitor for %2, but it does not own it. Ignoring'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5382
                        bindWith: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5383
                        with: (self monitorFriendlyPrintStringOf: someObject))
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5384
                severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5385
                facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5386
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5387
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5388
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5389
    "Created: / 17-11-2011 / 21:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5390
    "Modified: / 26-08-2012 / 20:00:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1687
dd0f09a3f7b9 Reverted acidentical commit of lockword changes
vranyj1
parents: 1685
diff changeset
  5391
!
dd0f09a3f7b9 Reverted acidentical commit of lockword changes
vranyj1
parents: 1685
diff changeset
  5392
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5393
monitorFriendlyPrintStringOf: someObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5394
    | objString |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5395
    someObject isJavaClass ifTrue: [ objString := someObject name ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5396
        objString := someObject class name , '@'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5397
                    , someObject identityHash printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5398
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5399
    ^ objString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5400
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5401
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5402
releaseMonitor: obj ofProcess: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5403
    "Release* (let go and wait for it again) monitor owned by given project.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5404
     *word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5405
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5406
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5407
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5408
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5409
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5410
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5411
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5412
            log: ('releasing monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5413
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5414
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5415
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5416
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5417
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5418
    mon release.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5419
    self acquiredMonitorsOf: aProcess remove: obj.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5420
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5421
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5422
    "Created: / 17-11-2011 / 18:51:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5423
    "Modified: / 27-08-2012 / 23:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5424
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5425
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5426
releaseMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5427
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5428
    self releaseMonitorsOfProcess: Processor activeProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5429
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5430
    "Created: / 04-11-2011 / 22:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5431
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5432
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5433
releaseMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5434
    "Releases* all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5435
     Monitor can be acquired again, (aProcess going into WAIT)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5436
     *word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5437
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5438
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5439
    monitors := self copyAcquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5440
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5441
        monitors do: [:obj | self releaseMonitor: obj ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5442
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5443
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5444
    "Created: / 04-11-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5445
    "Modified: / 17-11-2011 / 21:29:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5446
    "Modified (comment): / 05-12-2011 / 21:13:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5447
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5448
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5449
unwindHandlerForJavaContext: aJavaContext
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5450
    "given a context which has been marked for unwind,
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5451
     retrieve the handler block. This method is called when ST
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5452
     exception raises and stack is unwinding. JavaClass instance
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5453
     has an opportunity to clean up monitors"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5454
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5455
    ^ [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5456
        | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5457
        aJavaContext shouldExecuteFinallyOnUnwind ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5458
            self throwExceptionForFinallyIn: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5459
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5460
        self releaseMonitorsOfUnwindingContext: aJavaContext.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5461
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5462
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5463
    "Created: / 08-11-2011 / 12:30:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5464
    "Modified: / 17-11-2011 / 21:33:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5465
    "Modified: / 10-04-2012 / 11:08:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5466
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5467
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5468
!JavaVM class methodsFor:'monitors-obsolete'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5469
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5470
waitFor: sema state: pState timeOut: tmo
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5471
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5472
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5473
    | wasBlocked  thisProcess  releasedCount  acquiredCount |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5474
    thisProcess := Processor activeProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5475
    wasBlocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5476
    releasedCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5477
    (self hasAcquiredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5478
        MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5479
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5480
                log: thisProcess name , ' going into WAIT - releasing '
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5481
                        , (self countAcquiredMonitorsOfProcess: thisProcess) printString
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5482
                            , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5483
                severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5484
                facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5485
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5486
        self releaseMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5487
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5488
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5489
    pState notNil ifTrue: [ thisProcess state: pState ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5490
    sema isNil ifTrue: [ Delay waitForMilliseconds: tmo ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5491
        (tmo isNil or: [ tmo = 0 ]) ifTrue: [ sema wait. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5492
            sema waitWithTimeout: tmo / 1000.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5493
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5494
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5495
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5496
    "/ re-enter monitors.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5497
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5498
    (self hasEnteredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5499
        wasBlocked := OperatingSystem blockInterrupts.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5500
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5501
            log: thisProcess name , ' has been notified - trying to acquire '
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5502
                    , (self countEnteredMonitorsOfProcess: thisProcess) printString
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5503
                        , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5504
            severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5505
            facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5506
        self acquireMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5507
        acquiredCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5508
        self assert: acquiredCount = releasedCount.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5509
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5510
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5511
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5512
    "Created: / 30-12-1998 / 19:19:35 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5513
    "Modified: / 08-01-1999 / 17:29:24 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5514
    "Modified: / 20-11-2011 / 12:36:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5515
! !
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5516
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5517
!JavaVM class methodsFor:'native - com.sun.management'!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5518
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5519
_com_sun_management_UnixOperatingSystem_initialize: nativeContext
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5520
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5521
    <javanative: 'com/sun/management/UnixOperatingSystem' name: 'initialize()V'>
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5522
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5523
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
  5524
^self.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5525
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5526
    "Modified: / 03-11-2011 / 18:59:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5527
! !
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5528
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5529
!JavaVM class methodsFor:'native - java.awt'!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5530
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5531
_java_awt_AWTEvent_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5532
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5533
    <javanative: 'java/awt/AWTEvent' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5534
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5535
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5536
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5537
    "Modified: / 12-08-2011 / 19:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5538
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5539
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5540
_java_awt_Button_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5541
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5542
    <javanative: 'java/awt/Button' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5543
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5544
    "Modified: / 09-02-2012 / 22:54:34 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5545
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5546
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5547
_java_awt_Color_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5548
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5549
    <javanative: 'java/awt/Color' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5550
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5551
        "/ new with jdk1.2 ...
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5552
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5553
    "Created: / 28.1.1998 / 22:19:23 / cg"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5554
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5555
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5556
_java_awt_Component_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5557
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5558
    <javanative: 'java/awt/Component' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5559
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5560
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5561
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5562
    "Created: / 27.1.1998 / 19:53:29 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5563
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5564
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5565
_java_awt_Container_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5566
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5567
    <javanative: 'java/awt/Container' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5568
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5569
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5570
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5571
    "Modified: / 12-08-2011 / 19:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5572
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5573
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5574
_java_awt_Cursor_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5575
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5576
    <javanative: 'java/awt/Cursor' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5577
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5578
    "Modified: / 09-02-2012 / 22:54:49 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5579
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5580
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5581
_java_awt_Dialog_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5582
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5583
    <javanative: 'java/awt/Dialog' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5584
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5585
    "Modified: / 09-02-2012 / 22:54:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5586
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5587
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5588
_java_awt_Dimension_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5589
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5590
    <javanative: 'java/awt/Dimension' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5591
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5592
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5593
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5594
    "Modified: / 12-08-2011 / 19:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5595
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5596
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
  5597
_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
  5598
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5599
    <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
  5600
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5601
    "Modified: / 09-02-2012 / 22:53:11 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5602
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5603
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5604
_java_awt_FontMetrics_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5605
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5606
    <javanative: 'java/awt/FontMetrics' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5607
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
  5608
    ^ 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
  5609
!
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5610
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5611
_java_awt_Frame_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5612
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5613
    <javanative: 'java/awt/Frame' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5614
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5615
    "Modified: / 09-02-2012 / 22:53:52 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5616
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5617
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5618
_java_awt_Insets_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5619
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5620
    <javanative: 'java/awt/Insets' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5621
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5622
    "Modified: / 09-02-2012 / 22:54:54 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5623
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5624
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5625
_java_awt_KeyboardFocusManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5626
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5627
    <javanative: 'java/awt/KeyboardFocusManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5628
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5629
    "Modified: / 09-02-2012 / 22:55:04 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5630
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5631
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5632
_java_awt_MenuComponent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5633
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5634
    <javanative: 'java/awt/MenuComponent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5635
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5636
    "Modified: / 09-02-2012 / 22:53:22 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5637
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5638
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5639
_java_awt_MenuItem_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5640
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5641
    <javanative: 'java/awt/MenuItem' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5642
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5643
    "Modified: / 09-02-2012 / 22:54:40 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5644
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5645
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5646
_java_awt_Rectangle_initIDs: nativeContext
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5647
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5648
    <javanative: 'java/awt/Rectangle' name: 'initIDs()V'>
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5649
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5650
    "Intentionally left blank"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5651
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5652
    "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
  5653
!
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5654
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5655
_java_awt_Toolkit_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5656
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5657
    <javanative: 'java/awt/Toolkit' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5658
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5659
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5660
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5661
    "Created: / 27.1.1998 / 19:53:50 / cg"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5662
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5663
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5664
_java_awt_Window_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5665
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5666
    <javanative: 'java/awt/Window' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5667
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5668
    "Modified: / 09-02-2012 / 22:53:47 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5669
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5670
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5671
!JavaVM class methodsFor:'native - java.awt.event'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5672
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5673
_java_awt_event_InputEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5674
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5675
    <javanative: 'java/awt/event/InputEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5676
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5677
    "Modified: / 09-02-2012 / 22:53:27 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5678
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5679
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5680
_java_awt_event_KeyEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5681
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5682
    <javanative: 'java/awt/event/KeyEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5683
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5684
    "Modified: / 09-02-2012 / 22:53:33 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5685
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5686
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5687
_java_awt_event_MouseEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5688
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5689
    <javanative: 'java/awt/event/MouseEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5690
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5691
    "Modified: / 09-02-2012 / 22:53:40 / mh <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5692
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5693
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5694
!JavaVM class methodsFor:'native - java.io'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5696
_java_io_FileDescriptor_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5697
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5698
    <javanative: 'java/io/FileDescriptor' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5699
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5700
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5701
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5702
    "Created: / 27.1.1998 / 18:16:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5703
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5704
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5705
_java_io_FileDescriptor_set: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5706
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5707
    <javanative: 'java/io/FileDescriptor' name: 'set(I)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5708
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5709
    "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
  5710
     FD instead"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5711
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5712
    ^nativeContext argAt:1
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5713
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  5714
    "Modified: / 18-08-2011 / 19:54:36 / jv"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5715
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5716
904
vranyj1
parents: 903
diff changeset
  5717
_java_io_FileDescriptor_sync: nativeContext
vranyj1
parents: 903
diff changeset
  5718
vranyj1
parents: 903
diff changeset
  5719
    <javanative: 'java/io/FileDescriptor' name: 'sync'>
vranyj1
parents: 903
diff changeset
  5720
    "
vranyj1
parents: 903
diff changeset
  5721
    /**
vranyj1
parents: 903
diff changeset
  5722
    * Force all system buffers to synchronize with the underlying
vranyj1
parents: 903
diff changeset
  5723
    * device.  This method returns after all modified data and
vranyj1
parents: 903
diff changeset
  5724
    * attributes of this FileDescriptor have been written to the
vranyj1
parents: 903
diff changeset
  5725
    * relevant device(s).  In particular, if this FileDescriptor
vranyj1
parents: 903
diff changeset
  5726
    * refers to a physical storage medium, such as a file in a file
vranyj1
parents: 903
diff changeset
  5727
    * system, sync will not return until all in-memory modified copies
vranyj1
parents: 903
diff changeset
  5728
    * of buffers associated with this FileDescriptor have been
vranyj1
parents: 903
diff changeset
  5729
    * written to the physical medium.
vranyj1
parents: 903
diff changeset
  5730
    *
vranyj1
parents: 903
diff changeset
  5731
    * sync is meant to be used by code that requires physical
vranyj1
parents: 903
diff changeset
  5732
    * storage (such as a file) to be in a known state  For
vranyj1
parents: 903
diff changeset
  5733
    * example, a class that provided a simple transaction facility
vranyj1
parents: 903
diff changeset
  5734
    * might use sync to ensure that all changes to a file caused
vranyj1
parents: 903
diff changeset
  5735
    * by a given transaction were recorded on a storage medium.
vranyj1
parents: 903
diff changeset
  5736
    *
vranyj1
parents: 903
diff changeset
  5737
    * sync only affects buffers downstream of this FileDescriptor.  If
vranyj1
parents: 903
diff changeset
  5738
    * any in-memory buffering is being done by the application (for
vranyj1
parents: 903
diff changeset
  5739
    * example, by a BufferedOutputStream object), those buffers must
vranyj1
parents: 903
diff changeset
  5740
    * be flushed into the FileDescriptor (for example, by invoking
vranyj1
parents: 903
diff changeset
  5741
    * OutputStream.flush) before that data will be affected by sync.
vranyj1
parents: 903
diff changeset
  5742
    *
vranyj1
parents: 903
diff changeset
  5743
    * @exception SyncFailedException
vranyj1
parents: 903
diff changeset
  5744
    *        Thrown when the buffers cannot be flushed,
vranyj1
parents: 903
diff changeset
  5745
    *        or because the system cannot guarantee that all the
vranyj1
parents: 903
diff changeset
  5746
    *        buffers have been synchronized with physical media.
vranyj1
parents: 903
diff changeset
  5747
    * @since     JDK1.1
vranyj1
parents: 903
diff changeset
  5748
    */
vranyj1
parents: 903
diff changeset
  5749
    public native void sync() throws SyncFailedException;
vranyj1
parents: 903
diff changeset
  5750
    "
vranyj1
parents: 903
diff changeset
  5751
vranyj1
parents: 903
diff changeset
  5752
    OpenFileTable do:[:stream|
vranyj1
parents: 903
diff changeset
  5753
        stream notNil ifTrue:[stream flush].
vranyj1
parents: 903
diff changeset
  5754
    ].
vranyj1
parents: 903
diff changeset
  5755
vranyj1
parents: 903
diff changeset
  5756
    "Created: / 12-11-1998 / 19:26:25 / cg"
vranyj1
parents: 903
diff changeset
  5757
    "Modified (format): / 10-08-2011 / 19:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 903
diff changeset
  5758
!
vranyj1
parents: 903
diff changeset
  5759
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5760
_java_io_FileInputStream_available: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5761
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5762
    <javanative: 'java/io/FileInputStream' name: 'available'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5763
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5764
        |file|
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5765
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5766
    file := self validateFile:(nativeContext receiver).
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5767
    file == Stdin ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5768
        file := StdinReplacementFileQuerySignal raiseRequest.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5769
        file isNil ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5770
            ^ 1
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5771
        ]
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5772
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5773
    file isFileStream ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5774
        ^ file size - file position + 1
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5775
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5776
    file atEnd ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5777
        ^ 0.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5778
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5779
    self halt.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5780
    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5781
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5782
    "Modified: / 14-01-1998 / 15:12:52 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5783
    "Modified: / 28-07-2012 / 02:45:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5784
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5785
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5786
_java_io_FileInputStream_close0: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5787
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5788
    <javanative: 'java/io/FileInputStream' name: 'close0'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5789
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5790
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5791
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5792
    "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
  5793
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5794
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5795
_java_io_FileInputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5797
    <javanative: 'java/io/FileInputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5799
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5801
    "Created: / 27.1.1998 / 18:15:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5802
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5803
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5804
_java_io_FileInputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5805
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5806
    <javanative: 'java/io/FileInputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5807
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5808
    |fs fd name stream fileNo|
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5809
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5810
    fs := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5811
    fd := fs instVarNamed:'fd'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5812
    (fileNo := fd instVarNamed:'fd') ~~ 0 ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5813
        fileNo ~~ -1 ifTrue:[
vranyj1
parents: 903
diff changeset
  5814
            self halt:'file already open'.
vranyj1
parents: 903
diff changeset
  5815
            self internalError:'file already open'.
vranyj1
parents: 903
diff changeset
  5816
            ^ self.
vranyj1
parents: 903
diff changeset
  5817
        ]
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5818
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5819
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5820
    name := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5821
    name := Java as_ST_String:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5822
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5823
    name := self fixFilename:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5825
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5826
        ('JAVA: opening ' , name) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5827
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5828
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5829
    stream := self fileStreamForReading:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5830
    stream isNil ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5831
        ^ self.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5832
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5833
    stream buffered:false.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5834
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5835
"/    FileOpenConfirmation ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5836
"/        (self confirm:('JAVA Security check\\Opening ''' , name , ''' for reading.\Grant permission ?') withCRs)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5837
"/        ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5838
"/            self throwIOExceptionWithMessage:('no permission to open ' , name , ' for reading').
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5839
"/            ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5840
"/        ]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5841
"/    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5842
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5843
    fileNo := self addOpenFile:stream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5844
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5845
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5846
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5847
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5848
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5849
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5850
    "Kludge for finalization..."
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5851
904
vranyj1
parents: 903
diff changeset
  5852
    "Created: / 04-01-1998 / 16:47:12 / cg"
vranyj1
parents: 903
diff changeset
  5853
    "Modified: / 28-01-1999 / 17:24:07 / cg"
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  5854
    "Modified: / 24-07-2012 / 02:17:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5855
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5856
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5857
_java_io_FileInputStream_read: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5858
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5859
    <javanative: 'java/io/FileInputStream' name: 'read()I'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5860
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5861
        |file byte|
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5862
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5863
    file := self validateFile:(nativeContext receiver).
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5864
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5865
    file == Stdin ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5866
        file := StdinReplacementFileQuerySignal raiseRequest.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5867
        file isNil ifTrue:[
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5868
            ^ -1
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5869
        ]
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5870
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5871
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5872
    FileIOTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5873
        ('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5874
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5875
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5876
    byte := file nextByte.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5877
    byte isNil ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5878
        ^ -1
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5879
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5880
    "Java bytes are signed"
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5881
    byte > 127 ifTrue:[
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5882
        byte := 
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5883
            byte"/ - 255.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5884
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5885
    ^ byte
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5886
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5887
    "Created: / 05-01-1998 / 02:17:08 / cg"
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5888
    "Modified (format): / 12-12-2012 / 23:53:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5889
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5890
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5891
_java_io_FileInputStream_readBytes: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5892
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5893
    <javanative: 'java/io/FileInputStream' name: 'readBytes'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5894
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5895
    ^ self anyStream_readBytes:nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5896
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5897
    "Modified: / 04-02-1998 / 15:23:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5898
    "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
  5899
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5900
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5901
_java_io_FileInputStream_skip: nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5902
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5903
    <javanative: 'java/io/FileInputStream' name: 'skip(J)J'>
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5904
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5905
        "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5906
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5907
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5908
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5909
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5910
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5911
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5912
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5913
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5914
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5915
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5916
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5917
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5918
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5919
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5920
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5921
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5922
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5923
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5924
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5925
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5926
!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5927
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5928
_java_io_FileOutputStream_close0: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5929
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5930
    <javanative: 'java/io/FileOutputStream' name: 'close0'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5931
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5932
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5933
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5934
    "Modified: / 10-08-2011 / 14:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5935
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5936
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5937
_java_io_FileOutputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5939
    <javanative: 'java/io/FileOutputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5940
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5941
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5943
    "Created: / 27.1.1998 / 18:16:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5944
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5945
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5946
_java_io_FileOutputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5947
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5948
    <javanative: 'java/io/FileOutputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5949
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5950
    ^ self commonOpen:nativeContext forAppend:false
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5951
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5952
    "Modified: / 07-04-1998 / 19:14:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5953
    "Modified (format): / 10-08-2011 / 14:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5954
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5955
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5956
_java_io_FileOutputStream_openAppend: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5957
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5958
    <javanative: 'java/io/FileOutputStream' name: 'openAppend'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5959
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5960
    ^ 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
  5961
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5962
    "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
  5963
    "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5964
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5965
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5966
_java_io_FileOutputStream_write: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5967
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5968
    <javanative: 'java/io/FileOutputStream' name: 'write'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5969
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5970
     /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5971
     * Writes the specified byte to this file output stream. Implements
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5972
     * the <code>write</code> method of <code>OutputStream</code>.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5973
     *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5974
     * @param      b   the byte to be written.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5975
     * @exception  IOException  if an I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5976
     */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5977
     public native void write(int b) throws IOException;
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5978
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5979
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5980
    | fdobj fd stream b |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5981
    b := nativeContext argAt:1.
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5982
    "/Java byte is signed, make it integer in 0-255"
1878
4df79c0e1f53 Bugfix in FileOutputStream>>write(I)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1877
diff changeset
  5983
    b < 0 ifTrue:[b := b + 256].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5984
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5985
    fd    := fdobj instVarNamed: #fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5986
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5987
    [
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5988
        stream nextPut: b
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5989
    ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5990
        self throwIOExceptionWithMessage: ex description
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5991
    ]
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5992
1878
4df79c0e1f53 Bugfix in FileOutputStream>>write(I)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1877
diff changeset
  5993
    "Modified: / 15-12-2012 / 16:31:41 / 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
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5996
_java_io_FileOutputStream_writeBytes: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5998
    <javanative: 'java/io/FileOutputStream' name: 'writeBytes'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5999
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6000
        ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6001
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6002
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6003
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6004
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6005
_java_io_FileSystem_getFileSystem: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6006
    <javanative: 'java/io/FileSystem' name: 'getFileSystem'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6007
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6008
        ^ (self classForName: 'java.io.UnixFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6009
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6010
    OperatingSystem isMSWINDOWSlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6011
        ^ (Java classForName: 'java.io.WinNTFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6012
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6013
    self error: 'Unknown/Unsupported platform'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6014
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6015
    "Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6016
    "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6017
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6018
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6019
_java_io_ObjectInputStream_latestUserDefinedLoader: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6020
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6021
    <javanative: 'java/io/ObjectInputStream' name: 'latestUserDefinedLoader'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6022
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6023
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6024
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6025
    * Returns the first non-null class loader (not counting class loaders of
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6026
    * generated reflection implementation classes) up the execution stack, or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6027
    * null if only code from the null class loader is on the stack.  This
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6028
    * method is also called via reflection by the following RMI-IIOP class:
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6029
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6030
    *     com.sun.corba.se.internal.util.JDKClassLoader
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6031
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6032
    * This method should not be removed or its signature changed without
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6033
    * corresponding modifications to the above class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6034
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6035
    // REMIND: change name to something more accurate?
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6036
    private static native ClassLoader latestUserDefinedLoader();
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6037
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6038
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6039
    | ctx cl |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6040
    ctx := nativeContext.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6041
    [ ctx notNil ] whileTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6042
        ctx receiver isJavaObject ifTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6043
            (cl := ctx receiver class classLoader) notNil ifTrue:[
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  6044
                "/self breakPoint: #jv info: 'Should not count class loaders of generated reflection implementation classes'.
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6045
                "/Please check"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6046
                ^cl.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6047
            ]
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6048
        ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6049
        ctx := ctx sender.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6050
    ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6051
    ^nil
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6052
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  6053
    "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
  6054
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6055
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6056
_java_io_ObjectStreamClass_hasStaticInitializer: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6057
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6058
    <javanative: 'java/io/ObjectStreamClass' name: 'hasStaticInitializer'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6059
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6060
    | cls |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6061
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6062
    ^(cls includesSelector: #'<clinit>()V') ifTrue:[1] ifFalse:[0]
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6063
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6064
    "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
  6065
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6066
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6067
_java_io_ObjectStreamClass_initNative: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6069
    <javanative: 'java/io/ObjectStreamClass' name: 'initNative'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6070
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6071
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6072
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6073
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6074
     * Initializes native code.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6075
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6076
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6077
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6078
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6079
    "Created: / 20-12-2010 / 17:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6080
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6081
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6082
_java_io_RandomAccessFile_close0: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6083
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6084
    <javanative: 'java/io/RandomAccessFile' name: 'close0()V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6085
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6086
    ^ self commonClose:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6087
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6088
    "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
  6089
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6090
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6091
_java_io_RandomAccessFile_getFilePointer: nativeContext
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6092
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6093
    /**
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6094
     * Returns the current offset in this file.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6095
     *
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6096
     * @return     the offset from the beginning of the file, in bytes,
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6097
     *             at which the next read or write occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6098
     * @exception  IOException  if an I/O error occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6099
     */
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6100
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6101
    <javanative: 'java/io/RandomAccessFile' name: 'getFilePointer()J'>
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6102
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6103
    | file |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6104
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6105
    file := self validateFile:(nativeContext receiver).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6106
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6107
    FileIOTrace ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6108
        ('JAVA: getFilePointer on ' , file pathName) infoPrintCR.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6109
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6110
    ^file position0Based
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6111
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6112
    "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
  6113
!
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6114
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6115
_java_io_RandomAccessFile_initIDs: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6116
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6117
    <javanative: 'java/io/RandomAccessFile' name: 'initIDs'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6118
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6119
    "Nothing to do"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6120
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6121
    "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
  6122
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6123
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6124
_java_io_RandomAccessFile_length: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6125
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6126
    <javanative: 'java/io/RandomAccessFile' name: 'length()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6127
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6128
        |file sz|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6129
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6130
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6131
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6132
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6133
	('JAVA: length of ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6134
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6135
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6136
    sz := file size.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6137
    ^ sz.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6138
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6139
    "Created: / 4.2.1998 / 13:27:58 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6140
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6141
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6142
_java_io_RandomAccessFile_open: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6143
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6144
    <javanative: 'java/io/RandomAccessFile' name: 'open'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6145
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6146
    |fs fd nm mode filename dir stream fileNo answer readonly|
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6147
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6148
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6149
    fs := nativeContext receiver.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6150
    fd := fs instVarNamed:'fd'.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6151
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6152
        self halt:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6153
        self internalError:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6154
        ^ self.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6155
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6156
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6157
    nm := nativeContext argAt:1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6158
    nm := Java as_ST_String:nm.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6159
    nm := self fixFilename:nm.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6160
    mode := nativeContext argAt:2.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6161
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6162
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6163
    private static final int O_RDONLY = 1;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6164
    private static final int O_RDWR =   2;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6165
    private static final int O_SYNC =   4;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6166
    private static final int O_DSYNC =  8;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6167
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6168
    readonly := (mode bitAnd:1) == 1.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6169
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6170
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6171
        ('JAVA: opening ' , nm) infoPrintCR.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6172
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6173
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6174
    dir := (filename := nm utf8Encoded asFilename) directory pathName.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6175
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6176
    (PermittedDirectories notNil
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6177
    and:[PermittedDirectories includes:dir]) ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6178
        FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6179
            answer := Dialog
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6180
                    confirmWithCancel:('JAVA Security check\\Opening ''' , nm , ''' for read/write.\Grant permission ?') withCRs
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6181
                               labels:#('no' 'grant' 'readonly')
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6182
                               values:#(false true #readonly)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6183
                              default:3.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6184
            answer == false ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6185
                self throwIOExceptionWithMessage:('no permission to open ' , nm , ' for writing').
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6186
                ^ self
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6187
            ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6188
            readonly := (answer == #readonly).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6189
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6190
            readonly ifFalse:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6191
                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6192
                ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6193
                    PermittedDirectories isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6194
                        PermittedDirectories := Set new
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6195
                    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6196
                    PermittedDirectories add:dir.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6197
                ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6198
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6199
        ]
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6200
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6201
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6202
    (filename exists not and:[readonly]) ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6203
        self throwIOExceptionWithMessage:'File ', nm , ' does not exist'
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6204
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6205
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6206
    readonly ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6207
        stream := self commonOpenStreamUsing:[filename readStream].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6208
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6209
        stream := self commonOpenStreamUsing:[filename readWriteStream].
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6210
        stream isNil ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6211
            self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6212
        ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6213
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6214
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6215
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6216
    fileNo := self addOpenFile:stream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6217
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6218
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6219
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6220
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6221
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6222
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6223
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6224
    fs finalizationLobby registerChange: fs
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6225
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6226
    "Created: / 04-02-1998 / 00:14:48 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6227
    "Modified: / 12-11-1998 / 21:29:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6228
    "Modified: / 23-07-2012 / 19:37:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6229
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6230
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6231
_java_io_RandomAccessFile_read: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6232
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6233
    <javanative: 'java/io/RandomAccessFile' name: 'read()I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6234
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6235
        |file byte|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6236
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6237
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6238
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6239
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6240
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6241
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6242
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6243
    byte := file nextByte.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6244
    byte isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6245
	^ -1
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6246
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6247
    ^ byte
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6248
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6249
    "Modified: / 5.1.1998 / 02:17:25 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6250
    "Created: / 27.1.1999 / 19:01:15 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6251
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6252
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6253
_java_io_RandomAccessFile_readBytes: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6254
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6255
    <javanative: 'java/io/RandomAccessFile' name: 'readBytes([BII)I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6256
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6257
    ^ self anyStream_readBytes:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6258
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6259
    "Modified: / 04-02-1998 / 15:23:27 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6260
    "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
  6261
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6262
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6263
_java_io_RandomAccessFile_seek: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6264
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6265
    <javanative: 'java/io/RandomAccessFile' name: 'seek(J)V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6266
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6267
        |file pos|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6268
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6269
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6270
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6271
    FileIOTrace ifTrue:[
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6272
        ('JAVA: seek on ' , file pathName) infoPrintCR.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6273
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6274
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6275
    pos := nativeContext argAt:1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6276
    file position0Based:pos
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6277
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6278
    "Created: / 04-02-1998 / 13:25:38 / cg"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6279
    "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
  6280
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6281
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6282
_java_io_RandomAccessFile_writeBytes: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6283
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6284
    <javanative: 'java/io/RandomAccessFile' name: 'writeBytes([BII)V'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6285
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6286
        ^ self anyStream_writeBytes:nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6287
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6288
    "Modified: / 4.2.1998 / 15:24:20 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6289
    "Created: / 4.2.1998 / 15:24:35 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6290
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6291
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6292
_java_io_UnixFileSystem_canonicalize0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6294
    <javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6295
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6296
    |  path |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6297
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6298
    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
  6299
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6301
    "Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6302
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6303
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6304
_java_io_UnixFileSystem_checkAccess: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6305
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6306
    <javanative: 'java/io/UnixFileSystem' name: 'checkAccess'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6307
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6308
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6309
     public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6310
     public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6311
     public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6312
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6313
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6314
    | fileobj file access result |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6315
    fileobj := nativeContext argAt:1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6316
    file := (Java as_ST_String:(fileobj instVarNamed:#path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6317
    access := nativeContext argAt:2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6318
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6319
        access == 16r01 ifTrue:[result := file isExecutable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6320
        access == 16r02 ifTrue:[result := file isWritable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6321
        access == 16r04 ifTrue:[result := file isReadable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6322
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6323
        result := false.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6324
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6325
    ^result ifTrue:[1] ifFalse:[0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6326
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6327
    "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
  6328
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6329
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6330
_java_io_UnixFileSystem_createDirectory: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6331
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6332
    <javanative: 'java/io/UnixFileSystem' name: 'createDirectory'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6333
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6334
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6335
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6336
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6337
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6338
    file exists ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6339
        [
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6340
            file recursiveMakeDirectory.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6341
            ^1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6342
        ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6343
            self throwIOExceptionWithMessage:ex description.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6344
        ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6345
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6346
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6347
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6348
    "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
  6349
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6350
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6351
_java_io_UnixFileSystem_createFileExclusively: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6352
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6353
    <javanative: 'java/io/UnixFileSystem' name: 'createFileExclusively'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6354
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6355
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6356
    file := Java as_ST_String: (nativeContext argAt:1).
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6357
    file := file asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6358
    file exists ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6359
        [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6360
            file createAsEmptyFile
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6361
        ] on: Error do:[:ex|
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6362
            self throwIOExceptionWithMessage:ex description.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6363
        ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6364
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6365
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6366
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6367
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6368
    "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
  6369
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6370
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6371
_java_io_UnixFileSystem_delete0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6372
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6373
    <javanative: 'java/io/UnixFileSystem' name: 'delete0'>
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6374
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6375
      /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6376
      * Delete the file or directory denoted by the given abstract pathname,
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6377
      * returning <code>true</code> if and only if the operation succeeds.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6378
      */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6379
      public abstract boolean delete(File f);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6380
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6381
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6382
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6383
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6384
    file exists ifFalse:[^0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6385
    ^[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6386
        file remove.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6387
        true
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6388
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6389
        false
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6390
    ]
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6391
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6392
    "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
  6393
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6394
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6395
_java_io_UnixFileSystem_getBooleanAttributes0: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6396
    <javanative: 'java/io/UnixFileSystem' name: 'getBooleanAttributes0'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6397
    | file  path  retval  fileSystemClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6398
    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
  6399
    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
  6400
    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
  6401
    fileSystemClass := (self classForName: 'java.io.FileSystem').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6402
    path asFilename exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6403
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_EXISTS')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6404
    ] ifFalse: [ ^ 0. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6405
    path asFilename isDirectory ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6406
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_DIRECTORY')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6407
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6408
    path asFilename isRegularFile ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6409
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_REGULAR')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6410
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6411
    path asFilename isHidden ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6412
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_HIDDEN')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6413
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6414
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6415
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6416
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6417
    "Created: / 10-12-2010 / 14:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6418
    "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
  6419
    "Modified: / 03-11-2011 / 11:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6420
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6422
_java_io_UnixFileSystem_getLastModifiedTime: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6423
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6424
    <javanative: 'java/io/UnixFileSystem' name: 'getLastModifiedTime'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6425
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6426
    | file  filename  |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6427
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6428
    file := aJavaContext argAt: 1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6429
    filename := (Java as_ST_String: (file instVarNamed: #path)) utf8Encoded asFilename.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6430
    ^filename exists ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6431
        filename modificationTime asMilliseconds
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6432
    ] ifFalse:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6433
        0
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6434
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6435
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6436
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6437
    "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
  6438
    "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
  6439
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6440
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6441
_java_io_UnixFileSystem_getLength: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6442
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6443
    <javanative: 'java/io/UnixFileSystem' name: 'getLength'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6444
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6445
    | file |
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6446
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6447
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6448
    file exists ifFalse:[^0].
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6449
    ^file fileSize
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6450
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6451
    "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
  6452
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6453
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6454
_java_io_UnixFileSystem_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6456
    <javanative: 'java/io/UnixFileSystem' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6457
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6458
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6459
    self breakPoint: #libjava
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6461
    "Created: / 10-12-2010 / 14:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6462
    "Modified: / 10-12-2010 / 20:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6463
!
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6464
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6465
_java_io_UnixFileSystem_list: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6466
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6467
    <javanative: 'java/io/UnixFileSystem' name: #'list(Ljava/io/File;)[Ljava/lang/String;'>
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6468
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6469
    /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6470
    * Returns an array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6471
    * directory denoted by this abstract pathname.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6472
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6473
    * <p> If this abstract pathname does not denote a directory, then this
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6474
    * method returns {@code null}.  Otherwise an array of strings is
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6475
    * returned, one for each file or directory in the directory.  Names
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6476
    * denoting the directory itself and the directory's parent directory are
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6477
    * not included in the result.  Each string is a file name rather than a
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6478
    * complete path.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6479
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6480
    * <p> There is no guarantee that the name strings in the resulting array
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6481
    * will appear in any specific order; they are not, in particular,
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6482
    * guaranteed to appear in alphabetical order.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6483
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6484
    * @return  An array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6485
    *          directory denoted by this abstract pathname.  The array will be
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6486
    *          empty if the directory is empty.  Returns {@code null} if
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6487
    *          this abstract pathname does not denote a directory, or if an
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6488
    *          I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6489
    */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6490
   "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6491
    | fileobj file names jnames |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6492
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6493
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6494
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6495
    file exists ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6496
    file isDirectory ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6497
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6498
    names := file directoryContents.
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6499
    jnames := (Java at:'java.lang.String') javaArrayClass new: names size.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6500
    1 to: names size do:[:i|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6501
        jnames at: i put: (Java as_String:(names at: i))
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6502
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6503
    ^jnames
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6504
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6505
    "Modified: / 23-07-2012 / 21:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6506
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6507
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6508
_java_io_UnixFileSystem_rename0: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6509
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6510
    <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
  6511
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6512
    | file1 file2 |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6513
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6514
    file1 := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6515
    file2 := (Java as_ST_String: ((nativeContext argAt:2) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6516
    file1 exists ifFalse:[^0].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6517
    ^[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6518
        file1 moveTo: file2.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6519
        true
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6520
    ] on: Error do:[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6521
        false
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6522
    ]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6523
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6524
    "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
  6525
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6526
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6527
_java_io_UnixFileSystem_setLastModifiedTime: nativeContext
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6528
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6529
    <javanative: 'java/io/UnixFileSystem' name: 'setLastModifiedTime(Ljava/io/File;J)Z'>
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6530
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6531
    | f mtime file |
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6532
    f := nativeContext argAt: 1.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6533
    mtime := nativeContext argAt: 2.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6534
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6535
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6536
    self breakPoint: #jv. "There is no interface for that in St/X"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6537
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6538
    "Modified: / 05-12-2011 / 23:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6539
!
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6540
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6541
_java_io_UnixFileSystem_setPermission: nativeContext
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6542
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6543
    <javanative: 'java/io/UnixFileSystem' name: 'setPermission'>
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6544
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6545
    /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6546
     * 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
  6547
     * or directory denoted by the given abstract pathname, based on the parameters
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6548
     * enable, access and oweronly.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6549
     */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6550
    public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6551
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6552
    | f access enable owneronly file perms |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6553
    f := nativeContext argAt: 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6554
    access := nativeContext argAt: 2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6555
    enable := (nativeContext argAt: 3) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6556
    owneronly := (nativeContext argAt: 4) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6557
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6558
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6559
    public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6560
    public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6561
    public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6562
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6563
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6564
    access == 16r04 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6565
        perms := owneronly ifFalse:[#(readUser readGroup readOthers)] ifTrue:[#(readUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6566
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6567
    access == 16r02 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6568
        perms := owneronly ifFalse:[#(writeUser writeGroup writeOthers)] ifTrue:[#(writeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6569
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6570
    access == 16r01 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6571
        perms := owneronly ifFalse:[#(executeUser executeGroup executeOthers)] ifTrue:[#(executeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6572
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6573
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6574
        enable ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6575
            file addAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6576
        ] ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6577
            file removeAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6578
        ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6579
        ^ 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6580
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6581
        ^ 0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6582
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6583
    ^0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6584
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6585
    "Modified: / 09-08-2011 / 17:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6586
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6587
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6588
_java_io_UnixFileSystem_setReadOnly: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6589
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6590
    <javanative: 'java/io/UnixFileSystem' name: 'setReadOnly'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6591
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6592
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6593
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6594
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6595
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6596
    file exists ifFalse:[^0].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6597
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6598
        file  removeAccessRights: #(writeUser writeGroup writeOthers).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6599
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6600
    ] on: Error do:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6601
        ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6602
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6603
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6604
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6605
    "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
  6606
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6607
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6608
_java_io_Win32FileSystem_initIDs: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6609
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6610
    <javanative: 'java/io/Win32FileSystem' name: 'initIDs()V'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6611
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6612
    "Intentionally left blank"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6613
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6614
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6615
_java_io_WinNTFileSystem_canonicalize0: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6616
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6617
    <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
  6618
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6619
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6620
    |  path |
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6621
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6622
    path := Java as_ST_String: (aJavaContext argAt: 1).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6623
    ^(Java as_String: path asFilename asAbsoluteFilename pathName)
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6624
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6625
    "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
  6626
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6627
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6628
_java_io_WinNTFileSystem_canonicalizeWithPrefix0: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6629
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6630
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalizeWithPrefix0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6631
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6632
    |  path |
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6633
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6634
    path := Java as_ST_String: (nativeContext argAt: 2).
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6635
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6636
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6637
    "Modified: / 01-09-2011 / 21:50:47 / jv"
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6638
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6639
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6640
_java_io_WinNTFileSystem_checkAccess: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6641
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6642
    <javanative: 'java/io/WinNTFileSystem' name: 'checkAccess(Ljava/io/File;I)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6643
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6644
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6645
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6646
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6647
_java_io_WinNTFileSystem_createDirectory: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6648
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6649
    <javanative: 'java/io/WinNTFileSystem' name: 'createDirectory(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6650
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6651
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6652
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6653
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6654
_java_io_WinNTFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6655
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6656
    <javanative: 'java/io/WinNTFileSystem' name: 'createFileExclusively(Ljava/lang/String;)Z'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6657
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6658
    ^ self _java_io_UnixFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6659
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6660
    "Modified: / 18-08-2011 / 17:26:11 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6661
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6662
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6663
_java_io_WinNTFileSystem_delete0: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6664
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6665
    <javanative: 'java/io/WinNTFileSystem' name: 'delete0(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6666
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6667
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6668
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6669
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6670
_java_io_WinNTFileSystem_getBooleanAttributes: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6671
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6672
    <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
  6673
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6674
    ^ self _java_io_UnixFileSystem_getBooleanAttributes0:aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6675
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6676
    "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
  6677
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6678
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6679
_java_io_WinNTFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6680
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6681
    <javanative: 'java/io/WinNTFileSystem' name: 'getLastModifiedTime(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6682
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6683
    ^ self _java_io_UnixFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6684
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6685
    "Modified: / 18-08-2011 / 14:12:07 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6686
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6687
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6688
_java_io_WinNTFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6689
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6690
    <javanative: 'java/io/WinNTFileSystem' name: 'getLength(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6691
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6692
    ^ self _java_io_UnixFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6693
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6694
    "Modified: / 18-08-2011 / 14:15:36 / jv"
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6695
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6696
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6697
_java_io_WinNTFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6698
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6699
    <javanative: 'java/io/WinNTFileSystem' name: 'list(Ljava/io/File;)[Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6700
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6701
    ^ self _java_io_UnixFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6702
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6703
    "Modified: / 01-09-2011 / 21:46:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6704
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6705
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6706
!JavaVM class methodsFor:'native - java.lang'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6707
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6708
_java_lang_ClassLoader_NativeLibrary_load: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6709
    <javanative: 'java/lang/ClassLoader$NativeLibrary' name: 'load'>
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6710
    "/ introduced with jdk1.2 ... (sigh)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6711
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6712
    | nativeLoader  jLibName  libName  libHandle  index |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6713
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6714
    nativeLoader := nativeContext receiver.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6715
    jLibName := nativeContext argAt: 1.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6716
    libName := (Java as_ST_String: jLibName) asFilename baseName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6717
    (index := SimulatedNativeLibs indexOf: libName) ~~ 0 ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6718
        "/        ('JAVA: builtIn nativeLibLoad simulated: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6719
        nativeLoader instVarNamed: 'handle' put: index.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6720
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6721
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6722
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6723
    (LoadedNativeLibs notNil and: [ LoadedNativeLibs includesKey: libName ]) ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6724
        "/        ('JAVA: native library already loaded: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6725
        nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6726
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6727
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6728
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6729
    (self confirm: 'permission to load native library: ' , libName , ' ?') ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6730
        ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6731
    ].
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6732
    self halt.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6733
    libName asFilename exists ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6734
        ('JAVA: no file to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6735
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6736
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6737
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6738
    libHandle := ObjectFileLoader loadLibrary: libName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6739
    libHandle isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6740
        ('JAVA: failed to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6741
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6742
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6743
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6744
    LoadedNativeLibs isNil ifTrue: [ LoadedNativeLibs := Dictionary new. ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6745
    LoadedNativeLibs at: libName put: libHandle.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6746
    nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6747
    ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6748
    "/ void
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6749
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6750
    "Modified: / 06-02-1998 / 03:12:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6751
    "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
  6752
    "Modified: / 03-11-2011 / 18:25:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6753
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6754
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6755
_java_lang_ClassLoader_defineClass1: nativeContext
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6756
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6757
    "
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
  6758
     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
  6759
                                      ProtectionDomain pd, String source);"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6760
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
  6761
    | 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
  6762
    className := Java as_ST_String: (nativeContext argAt: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6763
    "if name starts with java.* or package is signed by something else and we are not signed, throw security exception"
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6764
    "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6765
    "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
  6766
    (className startsWith: 'java.') ifTrue: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6767
        self throwSecurityExceptionWith: 'className=' , className
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6768
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6769
    cls := nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6770
    b := nativeContext argAt: 2.
1701
06bcd06f766d define class now throws null pointer exception
hlopkmar
parents: 1698
diff changeset
  6771
    b ifNil: [self throwNullPointerException].
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6772
    off := nativeContext argAt: 3.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6773
    len := nativeContext argAt: 4.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6774
    pd := nativeContext argAt: 5.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6775
    source := Java as_ST_String: (nativeContext argAt: 6).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6776
    bs := (off = 0 and: [ len = b size ])
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6777
        ifTrue: [ b readStream ]
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6778
        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
  6779
    [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6780
        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6781
            do: [ cls := JavaClassReader readStream: bs. ]
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6782
    ] on: JavaClassReader invalidClassFormatSignal
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6783
            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6784
        :ex |
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6785
        self throwClassFormatError: ex description.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6786
        ^ nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6787
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6788
    self assert: cls classLoader == nativeContext receiver.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6789
     "FIXME: What to do with source?"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6790
    self registry registerClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6791
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6792
        do: [ cls resolveAll. ]."
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6793
    ^ self reflection javaClassObjectForClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6794
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6795
    "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
  6796
    "Modified: / 20-02-2012 / 23:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1701
06bcd06f766d define class now throws null pointer exception
hlopkmar
parents: 1698
diff changeset
  6797
    "Modified: / 10-09-2012 / 22:21:22 / m"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6798
!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6799
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6800
_java_lang_ClassLoader_defineClass1_OLD: nativeContext
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6801
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6802
    "
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6803
     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
  6804
                                      ProtectionDomain pd, String source);"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6805
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6806
    | 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
  6807
    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
  6808
     "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
  6809
    (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
  6810
        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
  6811
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6812
    cls := 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
  6813
                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
  6814
                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
  6815
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6816
                    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
  6817
                    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
  6818
                    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
  6819
                    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
  6820
                    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
  6821
                    (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
  6822
                        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
  6823
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6824
                    [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6825
                        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
  6826
                            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
  6827
                    ] 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
  6828
                            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6829
                        :ex |
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6830
                        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
  6831
                        ^ nil.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6832
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6833
                    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
  6834
                     "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
  6835
                    cls.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6836
                ].
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6837
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6838
        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
  6839
    ^ self reflection javaClassObjectForClass: cls.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6840
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6841
    "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
  6842
    "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
  6843
    "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
  6844
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6845
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6846
_java_lang_ClassLoader_findBootstrapClass: nativeContext
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6847
    <javanative: 'java/lang/ClassLoader' name: 'findBootstrapClass'>
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6848
    "Return class loaded by bootstrap (primordial) classloader or null.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6849
     See OpenJDK, file src/jdk7/hostspot/src/share/vm/prims/jvm.cpp"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6850
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6851
    | nm  class |
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6852
    nm := Java as_ST_String: (nativeContext argAt: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6853
    class := 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
  6854
                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
  6855
                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
  6856
                ifAbsentPut: [ class := JavaVM usePrimordialCLToLoadClassNamed: nm. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6857
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6858
    ^ class notNil
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6859
        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
  6860
        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
  6861
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6862
    "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
  6863
    "Modified: / 02-11-2011 / 20:13:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6864
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6865
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6866
_java_lang_ClassLoader_findLoadedClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6867
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6868
    <javanative: 'java/lang/ClassLoader' name: 'findLoadedClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6869
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6870
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6871
    Return java class object for class with given name
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6872
    loaded by the receiver or null if not found.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6873
    See OpenJDK:
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6874
        src/jdk7/hostspot/src/share/vm/classfile/systemDictionary.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6875
        src/jdk7/hostspot/src/share/vm/prims/jvm.cpp
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6876
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6877
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6878
    | nm class |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6879
    nm := Java as_ST_String: (nativeContext argAt:1).
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6880
    class := ClassRegistry classNamed: nm asSlashedJavaClassName loader: nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6881
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6882
    ^class notNil ifTrue: [
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6883
        self reflection javaClassObjectForClass:class
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6884
    ] ifFalse:[
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6885
        nil
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6886
    ]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6887
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6888
    "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
  6889
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6890
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6891
_java_lang_ClassLoader_getCaller: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6892
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6893
    <javanative: 'java/lang/ClassLoader' name: ''>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6894
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6895
    // index 0: java.lang.ClassLoader.class
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6896
    // index 1: the immediate caller of index 0.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6897
    // index 2: the immediate caller of index 1.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6898
    private static native Class<? extends ClassLoader> getCaller(int index);
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6899
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6900
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6901
    | ctx receiver |
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6902
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6903
    ctx := nativeContext.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6904
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6905
    (nativeContext argAt:1) timesRepeat:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6906
        ctx := ctx sender.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6907
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6908
    receiver := ctx receiver.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6909
    receiver isJavaClass ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6910
        receiver := Reflection javaClassObjectForClass: receiver.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6911
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6912
    ^receiver
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6913
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6914
    "Modified: / 03-09-2012 / 18:50:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6915
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6916
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6917
_java_lang_ClassLoader_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6918
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6919
    <javanative: 'java/lang/ClassLoader' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6920
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6921
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6922
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6924
    "Created: / 09-11-2010 / 20:55:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6925
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6926
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6927
_java_lang_ClassLoader_resolveClass0: nativeContext
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6928
    <javanative: 'java/lang/ClassLoader' name: 'resolveClass0'>
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  6929
    "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
  6930
    "or to be more precise - link class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6931
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6932
    | jClassLoader  jCls  cls |
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6933
    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
  6934
    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
  6935
    jCls isNil ifTrue: [
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6936
        self throwNullPointerException.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6937
        ^ nil
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6938
    ].
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
  6939
    cls := self reflection classForJavaClassObject: jCls.
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6940
    self assert: cls notNil.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6941
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6942
     do: [ "cls resolveAll." ].
1150
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6943
    ^ cls.
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6944
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6945
    "
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6946
        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
  6947
        * 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
  6948
        * 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
  6949
        * 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
  6950
        * 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
  6951
        * Specification</a>.
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6952
        * </p>
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6953
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6954
        * @param  c
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6955
        *         The class to link
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6956
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6957
        * @throws  NullPointerException
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6958
         *          If <tt>c</tt> is <tt>null</tt>."
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6959
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6960
    "Created: / 07-01-1998 / 13:12:27 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6961
    "Modified: / 20-10-1998 / 19:01:57 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6962
    "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
  6963
    "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
  6964
    "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
  6965
!
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6966
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6967
_java_lang_ClassLoader_retrieveDirectives: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6968
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6969
    <javanative: 'java/lang/ClassLoader' name: 'retrieveDirectives()Ljava/lang/AssertionStatusDirectives;'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6970
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6971
    | directives |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6972
    directives := (self classForName:'java.lang.AssertionStatusDirectives') new.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6973
    directives instVarNamed:#classes
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6974
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6975
    directives instVarNamed:#classEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6976
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6977
    directives instVarNamed:#packages
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6978
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6979
    directives instVarNamed:#packageEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6980
        put: (Boolean javaArrayClass new:0).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6981
    directives instVarNamed:#deflt
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6982
        put: ((AssertionsEnabled == true) ifTrue:[1] ifFalse:[0]).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6983
    ^directives
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6984
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6985
    "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
  6986
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6987
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6988
_java_lang_Class_desiredAssertionStatus0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6990
    <javanative: 'java/lang/Class' name: 'desiredAssertionStatus0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6991
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6992
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6993
    ^AssertionsEnabled == true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6994
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6995
    "Created: / 24-11-2010 / 08:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6996
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6997
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6998
_java_lang_Class_forName0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6999
    <javanative: 'java/lang/Class' name: 'forName0'>
1205
vranyj1
parents: 1204
diff changeset
  7000
    |nm initialize loader class descriptor|
vranyj1
parents: 1204
diff changeset
  7001
vranyj1
parents: 1204
diff changeset
  7002
    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
  7003
     "Using Class.forName() to get a primitive type is not allowed"
1205
vranyj1
parents: 1204
diff changeset
  7004
    (nm size == 1 and:[JavaDescriptor baseTypes includesKey:nm first]) ifTrue:[
vranyj1
parents: 1204
diff changeset
  7005
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  7006
    ].
vranyj1
parents: 1204
diff changeset
  7007
    (JavaDescriptor baseTypesByTypeName includesKey:nm) ifTrue:[
vranyj1
parents: 1204
diff changeset
  7008
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  7009
    ].
vranyj1
parents: 1204
diff changeset
  7010
    initialize := aJavaContext argAt:2.
vranyj1
parents: 1204
diff changeset
  7011
    loader := aJavaContext argAt:3.
vranyj1
parents: 1204
diff changeset
  7012
    JavaClassReader classLoaderQuerySignal answer:loader do:[
vranyj1
parents: 1204
diff changeset
  7013
        (nm first == $[) ifTrue:[
vranyj1
parents: 1204
diff changeset
  7014
            |nms|
vranyj1
parents: 1204
diff changeset
  7015
vranyj1
parents: 1204
diff changeset
  7016
            nms := nm readStream.
vranyj1
parents: 1204
diff changeset
  7017
            descriptor := JavaDescriptor readFrom:nms
vranyj1
parents: 1204
diff changeset
  7018
                        onError:[^ self throwClassNotFoundException:nm].
vranyj1
parents: 1204
diff changeset
  7019
            nms atEnd ifFalse:[
vranyj1
parents: 1204
diff changeset
  7020
                ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  7021
            ].
vranyj1
parents: 1204
diff changeset
  7022
            class := descriptor javaClass.
vranyj1
parents: 1204
diff changeset
  7023
        ] ifFalse:[
vranyj1
parents: 1204
diff changeset
  7024
            class := self classForName:nm
vranyj1
parents: 1204
diff changeset
  7025
        ]
vranyj1
parents: 1204
diff changeset
  7026
    ].
vranyj1
parents: 1204
diff changeset
  7027
    class isNil ifTrue:[
vranyj1
parents: 1204
diff changeset
  7028
        ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  7029
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7030
    ((initialize ~~ 0)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7031
        and:[class isJavaArrayClass not and:[class isJavaPrimitiveType not]])
1205
vranyj1
parents: 1204
diff changeset
  7032
            ifTrue:[
vranyj1
parents: 1204
diff changeset
  7033
                [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
  7034
            ].
1205
vranyj1
parents: 1204
diff changeset
  7035
    ^ JavaVM javaClassObjectForClass:class.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7036
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7037
    "Created: / 24-11-2010 / 09:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
vranyj1
parents: 1062
diff changeset
  7038
    "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
  7039
    "Modified: / 02-11-2011 / 19:12:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1205
vranyj1
parents: 1204
diff changeset
  7040
    "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
  7041
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7042
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7043
_java_lang_Class_getClassLoader0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7045
    <javanative: 'java/lang/Class' name: 'getClassLoader0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7046
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7047
    "get a classes loader"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7048
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7049
    |jClass cls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7050
    jClass := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7051
    cls := self reflection classForJavaClassObject:jClass.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7052
    ^cls javaMirror getClassLoader
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7053
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7054
    "Created: / 25-10-2010 / 22:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7055
    "Modified: / 28-01-2011 / 15:18:54 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7056
    "Modified (format): / 31-07-2012 / 18:33:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7057
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7058
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7059
_java_lang_Class_getComponentType: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7060
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7061
    <javanative: 'java/lang/Class' name: 'getComponentType'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7063
        |cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7064
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7065
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7066
    cls isJavaPrimitiveType ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7067
        self breakPoint:#jv.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7068
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7069
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7070
    ^ self javaClassObjectForClass:cls javaComponentClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7071
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7072
    "Created: / 12-11-1998 / 18:54:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7073
    "Modified: / 20-12-2010 / 22:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7074
    "Modified: / 28-01-2011 / 15:18:59 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7075
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7076
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7077
_java_lang_Class_getConstantPool: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7078
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7079
    <javanative: 'java/lang/Class' name: 'getConstantPool'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7081
        | class |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7082
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7083
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7084
    class isJavaClass ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7085
        ^nil
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  7086
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7087
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7088
    ^ self reflection javaConstantPoolObjectFor:class constantPool.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7089
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7090
    "Created: / 21-12-2010 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7091
    "Modified: / 28-02-2011 / 18:05:13 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7092
    "Modified: / 31-07-2012 / 00:47:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7093
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7094
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7095
_java_lang_Class_getDeclaredClasses0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7096
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7097
    <javanative: 'java/lang/Class' name: 'getDeclaredClasses0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7098
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7099
    | class innerPrefix inners |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7100
    class := self reflection classForJavaClassObject: nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7101
    innerPrefix := class name , '$'.
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7102
    inners := Set new.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7103
    JAVA allClassesDo:[:cls|
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  7104
        ((cls name startsWith: innerPrefix) and:[(cls name indexOf: $$ startingAt: innerPrefix size) == 0]) ifTrue:[
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7105
            inners add: (self reflection javaClassObjectForClass: cls)
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7106
        ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7107
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7108
    ^(Java at: 'java.lang.Class') javaArrayClass withAll: inners
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7109
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  7110
    "Modified: / 31-07-2012 / 12:07:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7111
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7112
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7113
_java_lang_Class_getDeclaredConstructors0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7114
    <javanative: 'java/lang/Class' name: 'getDeclaredConstructors0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7115
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7116
    | class publicOnly |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7117
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7118
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7119
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7120
    ^class javaMirror getDeclaredConstructors: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7122
    "Created: / 24-11-2010 / 09:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7123
    "Modified: / 09-02-2011 / 01:24:03 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7124
    "Modified (format): / 01-08-2012 / 11:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7125
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7126
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7127
_java_lang_Class_getDeclaredFields0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7128
    <javanative: 'java/lang/Class' name: 'getDeclaredFields0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7129
    |javaClassObject class fields publicOnly|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7130
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7131
    class := self reflection
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7132
                classForJavaClassObject:(javaClassObject := aJavaContext argAt:0).
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7133
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7134
        ^(self classForName:'java.lang.reflect.Field') javaArrayClass new:0.
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7135
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7136
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7137
    publicOnly := (aJavaContext argAt:1) == 1.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7138
    fields := class javaMirror getDeclaredFields: publicOnly.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7139
    ^fields
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7141
    "Created: / 10-11-2010 / 16:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7142
    "Modified: / 28-01-2011 / 15:19:06 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7143
    "Modified: / 22-08-2012 / 12:16:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7144
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7145
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7146
_java_lang_Class_getDeclaredMethods0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7147
    <javanative: 'java/lang/Class' name: 'getDeclaredMethods0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7148
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7149
    | class publicOnly |
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7150
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7151
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7152
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7153
    ^class javaMirror getDeclaredMethods: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7155
    "Created: / 21-12-2010 / 22:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7156
    "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
  7157
    "Modified: / 04-06-2011 / 17:07:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7158
    "Modified: / 01-08-2012 / 11:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7159
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7160
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7161
_java_lang_Class_getDeclaringClass: nativeContext
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7162
    <javanative: 'java/lang/Class' name: 'getDeclaringClass'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7163
    "
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7164
     /**
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7165
     * 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
  7166
     * 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
  7167
     * 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
  7168
     * 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
  7169
     * 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
  7170
     * type, or void,then this method returns null.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7171
     *
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7172
     * @return the declaring class for this class
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7173
     * @since JDK1.1
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7174
     */"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7175
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7176
    | cls  enclosingClsName  enclosingCls |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7177
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7178
    cls := self reflection classForJavaClassObject: (nativeContext receiver).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7179
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7180
    (cls name includes: $$) ifFalse: [ ^ nil ].
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7181
    enclosingClsName := cls name copyTo: (cls name lastIndexOf: $$) - 1.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7182
    enclosingCls := self classForName: enclosingClsName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7183
    enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7184
    ^ self reflection javaClassObjectForClass: enclosingCls
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7185
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7186
    "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
  7187
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7188
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7189
_java_lang_Class_getEnclosingMethod0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7190
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7191
    <javanative: 'java/lang/Class' name: 'getEnclosingMethod0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7192
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7193
    ^nil "/Not true"
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7194
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7195
    "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
  7196
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7197
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7198
_java_lang_Class_getGenericSignature: nativeContext
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7199
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7200
    <javanative: 'java/lang/Class' name: 'getGenericSignature'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7201
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7202
    |cls sig |
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7203
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7204
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7205
    sig := cls javaMirror getGenericSignature.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7206
    ^sig notNil ifTrue:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7207
        Java as_String: sig
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7208
    ] ifFalse:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7209
        nil
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7210
    ]
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7211
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7212
    "Modified: / 22-08-2012 / 11:58:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7213
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7214
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7215
_java_lang_Class_getInterfaces:nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7216
    <javanative: 'java/lang/Class' name: 'getInterfaces'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7217
    |jClass cls interfaces jInterfaces|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7218
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7219
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7220
    cls := self reflection classForJavaClassObject:jClass.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7221
    interfaces := cls javaMirror getInterfaces.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7222
    jInterfaces := (self classForName:'java.lang.Class') javaArrayClass new:interfaces size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7223
    interfaces
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7224
        withIndexDo:[:iface :idx | jInterfaces at:idx put:(self javaClassObjectForClass:iface) ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7225
    ^ jInterfaces
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7227
    "Modified: / 28-01-2011 / 15:19:11 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7228
    "Modified: / 22-08-2012 / 11:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7229
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7230
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7231
_java_lang_Class_getModifiers: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7232
    <javanative: 'java/lang/Class' name: 'getModifiers'>
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7233
    | cls |
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7234
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7235
    cls := (self reflection classForJavaClassObject: aJavaContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7236
    ^cls javaMirror getModifiers
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7238
    "Created: / 12-11-1998 / 18:54:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7239
    "Modified: / 28-01-2011 / 15:19:14 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7240
    "Modified: / 22-08-2012 / 11:04:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7241
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7242
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7243
_java_lang_Class_getName0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7245
    <javanative: 'java/lang/Class' name: 'getName0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7246
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7247
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7249
    class := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7250
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7251
    ^ self reflection
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7252
        javaStringObjectForString:class javaMirror getName
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7253
        interned:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7255
    "Created: / 22-11-2010 / 17:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7256
    "Modified: / 09-02-2011 / 01:06:53 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7257
    "Modified: / 22-08-2012 / 10:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7258
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7259
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7260
_java_lang_Class_getPrimitiveClass: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7261
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7262
    <javanative: 'java/lang/Class' name: 'getPrimitiveClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7264
        "get a primitive class by name"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7265
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7266
    |jClassName className|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7268
    jClassName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7269
    className := Java as_ST_String:jClassName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7270
    (JavaDescriptor baseTypesByTypeName keys includes: className)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7271
        ifFalse:[self throwClassNotFoundException:className].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7272
    ^self reflection javaClassObjectForClassNamed: className
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7274
    "Created: / 04-01-1998 / 00:46:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7275
    "Modified: / 28-01-2011 / 15:30:45 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7276
    "Modified: / 03-02-2011 / 21:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7277
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7278
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7279
_java_lang_Class_getProtectionDomain0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7280
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7281
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7282
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7283
    ^(self reflection classForJavaClassObject: nativeContext receiver) javaMirror getProtectionDomain
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7284
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7285
    "Modified: / 22-08-2012 / 12:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7286
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7287
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7288
_java_lang_Class_getRawAnnotations: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7290
    <javanative: 'java/lang/Class' name: 'getRawAnnotations'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7291
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7292
    |class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7294
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7295
    class isJavaArrayClass ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7296
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7297
    ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7298
    class isJavaPrimitiveType ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7299
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7300
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7301
    class isJavaClass ifFalse:[
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7302
        ^nil.
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7303
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7304
    ^ class runtimeVisibleAnnotationsAsBytesOrNil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7306
    "Created: / 21-12-2010 / 19:35:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7307
    "Modified: / 28-01-2011 / 15:19:20 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7308
    "Modified: / 31-07-2012 / 00:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7309
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7310
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7311
_java_lang_Class_getSuperclass: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7312
    <javanative: 'java/lang/Class' name: 'getSuperclass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7313
    "return a classes superclass"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7314
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7315
    | jClass  cls  superCls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7317
    jClass := nativeContext receiver.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7318
    cls := self reflection classForJavaClassObject: jClass.
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7319
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7320
    cls isJavaPrimitiveType ifTrue: [ ^ nil ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7321
    cls isJavaArrayClass ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7322
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7323
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7324
    cls == Object ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7325
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7326
    ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7327
    cls isInterface ifTrue: [ ^ nil ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7328
    superCls := cls superclass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7329
    superCls == JavaObject ifTrue: [ ^ nil. ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7330
    superCls ==     Object ifTrue: [ ^ nil ]. "/for Java
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7331
    ^ self javaClassObjectForClass: superCls
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7332
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7333
    "Created: / 12-01-1998 / 12:38:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7334
    "Modified: / 04-02-1998 / 14:51:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7335
    "Modified: / 28-01-2011 / 14:12:47 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7336
    "Modified: / 31-07-2012 / 00:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7337
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7339
_java_lang_Class_isArray: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7341
    <javanative: 'java/lang/Class' name: 'isArray'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7342
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7343
        ^ (self reflection classForJavaClassObject:nativeContext receiver) isJavaArrayClass
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7344
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7345
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7346
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7347
    "Created: / 12-11-1998 / 18:54:24 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7348
    "Modified: / 20-12-2010 / 23:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7349
    "Modified: / 28-01-2011 / 15:19:24 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7350
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7351
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7352
_java_lang_Class_isAssignableFrom: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7354
    <javanative: 'java/lang/Class' name: 'isAssignableFrom'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7355
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7356
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7357
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7358
     * Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7359
     * {@code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7360
     * superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7361
     * {@code Class} parameter. It returns {@code true} if so;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7362
     * otherwise it returns {@code false}. If this {@code Class}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7363
     * object represents a primitive type, this method returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7364
     * {@code true} if the specified {@code Class} parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7365
     * exactly this {@code Class} object; otherwise it returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7366
     * {@code false}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7367
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7368
     * <p> Specifically, this method tests whether the type represented by the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7369
     * specified {@code Class} parameter can be converted to the type
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7370
     * represented by this {@code Class} object via an identity conversion
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7371
     * or via a widening reference conversion. See <em>The Java Language
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7372
     * Specification</em>, sections 5.1.1 and 5.1.4 , for details.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7373
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7374
     * @param cls the {@code Class} object to be checked
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7375
     * @return the {@code boolean} value indicating whether objects of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7376
     * type {@code cls} can be assigned to objects of this class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7377
     * @exception NullPointerException if the specified Class parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7378
     *            null.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7379
     * @since JDK1.1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7380
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7381
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7382
    | clsObj me other |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7383
    clsObj := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7384
    clsObj ifNil:[^self throwNullPointerException].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7385
    me := self reflection classForJavaClassObject: nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7386
    other := self reflection classForJavaClassObject: clsObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7387
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7388
    "/    Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7389
    "/    @code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7390
    "/    superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7391
    "/    {@code Class} parameter.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7393
    ^(other includesBehavior: me)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7394
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7395
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7397
    "Created: / 12-11-1998 / 18:54:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7398
    "Modified: / 05-02-2011 / 23:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7399
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7400
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7401
_java_lang_Class_isInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7402
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7403
    <javanative: 'java/lang/Class' name: 'isInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7404
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7405
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7406
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7407
     * Determines if the specified {@code Object} is assignment-compatible
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7408
     * with the object represented by this {@code Class}.  This method is
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7409
     * the dynamic equivalent of the Java language {@code instanceof}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7410
     * operator. The method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7411
     * {@code Object} argument is non-null and can be cast to the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7412
     * reference type represented by this {@code Class} object without
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7413
     * raising a {@code ClassCastException.} It returns {@code false}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7414
     * otherwise.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7415
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7416
     * <p> Specifically, if this {@code Class} object represents a
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7417
     * declared class, this method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7418
     * {@code Object} argument is an instance of the represented class (or
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7419
     * of any of its subclasses); it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7420
     * this {@code Class} object represents an array class, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7421
     * returns {@code true} if the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7422
     * can be converted to an object of the array class by an identity
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7423
     * conversion or by a widening reference conversion; it returns
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7424
     * {@code false} otherwise. If this {@code Class} object
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7425
     * represents an interface, this method returns {@code true} if the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7426
     * class or any superclass of the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7427
     * implements this interface; it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7428
     * this {@code Class} object represents a primitive type, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7429
     * returns {@code false}.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7430
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7431
     * @param   obj the object to check
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7432
     * @return  true if {@code obj} is an instance of this class
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7433
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7434
     * @since JDK1.1
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7435
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7436
    public native boolean isInstance(Object obj);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7437
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7438
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7439
    |jClass cls obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7440
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7441
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7442
    obj isNil ifTrue:[^ 0].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7443
    jClass := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7444
    cls := self reflection classForJavaClassObject:jClass.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7445
    ^self _INSTANCEOF:obj _:cls
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7446
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7447
    "Modified: / 09-02-1998 / 14:56:23 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7448
    "Modified: / 28-01-2011 / 14:12:42 / Marcel Hlopko <hlopik@gmail.com>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7449
    "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
  7450
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7451
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7452
_java_lang_Class_isInterface: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7453
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7454
    <javanative: 'java/lang/Class' name: 'isInterface'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7456
        "return true, if this class is an interface"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7457
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7458
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7459
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7460
    jClass := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7461
    cls := self reflection classForJavaClassObject:jClass.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7462
    cls isJavaClass ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7463
        ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7464
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7465
    cls isInterface ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7466
        ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7467
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7468
    ^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7470
    "Created: / 12-01-1998 / 12:37:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7471
    "Modified: / 28-01-2011 / 14:12:35 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7472
    "Modified: / 03-02-2011 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7473
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7475
_java_lang_Class_isPrimitive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7476
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7477
    <javanative: 'java/lang/Class' name: 'isPrimitive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7478
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7479
        "return true, if this class is builtin primitive class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7480
     (i.e. byteArray, array, string etc."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7481
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7482
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7483
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7484
    jClass := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7485
    cls := self reflection classForJavaClassObject:jClass.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7486
    ^cls isJavaPrimitiveType
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7487
        ifTrue:[1"true"]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7488
        ifFalse:[0"false"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7489
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7490
    "Created: / 09-02-1998 / 14:46:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7491
    "Modified: / 28-01-2011 / 14:12:30 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7492
    "Modified: / 04-02-2011 / 11:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7493
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7494
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7495
_java_lang_Class_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7496
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7497
    <javanative: 'java/lang/Class' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7498
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7499
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7500
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7501
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7502
    "Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7503
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7504
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7505
_java_lang_Class_setProtectionDomain0: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7506
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7507
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7508
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7509
    (self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7510
        protectionDomain: (nativeContext argAt:1)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7511
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7512
    "Created: / 10-08-2011 / 15:20:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7513
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7514
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7515
_java_lang_Compiler_disable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7516
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7517
    <javanative: 'java/lang/Compiler' name: 'disable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7518
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7519
    "Modified: / 09-02-2012 / 22:56:44 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7520
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7521
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7522
_java_lang_Compiler_enable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7523
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7524
    <javanative: 'java/lang/Compiler' name: 'enable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7525
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7526
    "Modified: / 09-02-2012 / 22:57:15 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7527
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7528
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7529
_java_lang_Compiler_registerNatives: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7530
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7531
    <javanative: 'java/lang/Compiler' name: 'registerNatives()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7532
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7533
    "Modified: / 09-02-2012 / 22:56:37 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7534
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7535
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7536
_java_lang_Double_doubleToRawLongBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7538
    <javanative: 'java/lang/Double' name: 'doubleToRawLongBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7540
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7541
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7542
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7543
     * according to the IEEE 754 floating-point 'double
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7544
     * format' bit layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7545
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7546
     * <p>Bit 63 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7547
     * {@code 0x8000000000000000L}) represents the sign of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7548
     * floating-point number. Bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7549
     * 62-52 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7550
     * {@code 0x7ff0000000000000L}) represent the exponent. Bits 51-0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7551
     * (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7552
     * {@code 0x000fffffffffffffL}) represent the significand
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7553
     * (sometimes called the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7554
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7555
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7556
     * {@code 0x7ff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7557
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7558
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7559
     * {@code 0xfff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7560
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7561
     * <p>If the argument is NaN, the result is the {@code long}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7562
     * integer representing the actual NaN value.  Unlike the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7563
     * {@code doubleToLongBits} method,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7564
     * {@code doubleToRawLongBits} does not collapse all the bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7565
     * patterns encoding a NaN to a single 'canonical' NaN
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7566
     * value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7567
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7568
     * <p>In all cases, the result is a {@code long} integer that,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7569
     * when given to the {@link #longBitsToDouble(long)} method, will
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7570
     * produce a floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7571
     * {@code doubleToRawLongBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7572
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7573
     * @param   value   a {@code double} precision floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7574
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7575
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7576
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7577
    "
1902
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7578
      | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7579
    f := aJavaContext argAt:1.
1902
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7580
    (f =  0.0) ifTrue:[^0].
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7581
    (f = -0.0) ifTrue:[^(1 bitShift: 63)].
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7582
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7583
    b := ByteArray streamContents:[:s|Float storeBinaryIEEEDouble:f on:s].
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7584
    ^ LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7585
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7586
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7587
"/    | f |
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7588
"/    f := aJavaContext argAt:1.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7589
"/    f class == Float ifFalse:[ ^self throwIllegalArgumentException: 'Not a float'].
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7590
"/%{
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7591
"/    __int64__ *i = &(__floatVal(f));
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7592
"/    RETURN (__MKINT64( i ));
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7593
"/%}.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7594
"/    self primitiveFailed.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7596
    "Created: / 10-11-2010 / 14:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1902
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7597
    "Modified: / 16-12-2012 / 23:23:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7598
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7599
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7600
_java_lang_Double_longBitsToDouble: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7601
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7602
    <javanative: 'java/lang/Double' name: 'longBitsToDouble'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7603
1902
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7604
    |i aFloat|
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7605
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7606
    i := nativeContext argAt:1.
1902
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7607
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7608
    aFloat := Float new.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7609
    UninterpretedBytes isBigEndian ifTrue:[
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7610
        aFloat basicAt:1 put:((i bitShift:-56) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7611
        aFloat basicAt:2 put:((i bitShift:-48) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7612
        aFloat basicAt:3 put:((i bitShift:-40) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7613
        aFloat basicAt:4 put:((i bitShift:-32) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7614
        aFloat basicAt:5 put:((i bitShift:-24) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7615
        aFloat basicAt:6 put:((i bitShift:-16) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7616
        aFloat basicAt:7 put:((i bitShift:-8) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7617
        aFloat basicAt:8 put:(i bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7618
    ] ifFalse:[
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7619
        aFloat basicAt:1 put:(i bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7620
        aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7621
        aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7622
        aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7623
        aFloat basicAt:5 put:((i bitShift:-32) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7624
        aFloat basicAt:6 put:((i bitShift:-40) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7625
        aFloat basicAt:7 put:((i bitShift:-48) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7626
        aFloat basicAt:8 put:((i bitShift:-56) bitAnd:16rFF).
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7627
    ].
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7628
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7629
    ^ aFloat.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7630
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7631
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7632
"/    | i f|
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7633
"/
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7634
"/    i := nativeContext argAt:1.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7635
"/    f := Float new.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7636
"/%{
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7637
"/    long long l;
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7638
"/    l = __longIntVal(i);
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7639
"/    double *d = &l;
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7640
"/    __floatVal(f) = *d;
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7641
"/%}.
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7642
"/    ^f
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7643
7edd54d4c29a Reverted Double to/from int bits to previous version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1885
diff changeset
  7644
    "Modified: / 16-12-2012 / 23:24:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7645
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7647
_java_lang_Float_floatToRawIntBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7648
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7649
    <javanative: 'java/lang/Float' name: 'floatToRawIntBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7650
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7651
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7652
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7653
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7654
     * according to the IEEE 754 floating-point 'single format' bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7655
     * layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7656
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7657
     * <p>Bit 31 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7658
     * {@code 0x80000000}) represents the sign of the floating-point
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7659
     * number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7660
     * Bits 30-23 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7661
     * {@code 0x7f800000}) represent the exponent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7662
     * Bits 22-0 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7663
     * {@code 0x007fffff}) represent the significand (sometimes called
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7664
     * the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7665
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7666
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7667
     * {@code 0x7f800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7668
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7669
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7670
     * {@code 0xff800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7671
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7672
     * <p>If the argument is NaN, the result is the integer representing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7673
     * the actual NaN value.  Unlike the {@code floatToIntBits}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7674
     * method, {@code floatToRawIntBits} does not collapse all the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7675
     * bit patterns encoding a NaN to a single 'canonical'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7676
     * NaN value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7677
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7678
     * <p>In all cases, the result is an integer that, when given to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7679
     * {@link #intBitsToFloat(int)} method, will produce a
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7680
     * floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7681
     * {@code floatToRawIntBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7682
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7683
     * @param   value   a floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7684
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7685
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7686
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7687
    "
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7688
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7689
    f := aJavaContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7690
    f class == ShortFloat ifFalse:[ self throwIllegalArgumentException: 'Not a float'].
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7691
%{
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7692
        int *ival = &__shortFloatVal(f);
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7693
        RETURN (__MKINT(*ival));
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7694
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7695
    self primitiveFailed.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7697
    "Created: / 09-11-2010 / 20:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7698
    "Modified: / 16-12-2012 / 11:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7699
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7700
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7701
_java_lang_Float_intBitsToFloat: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7702
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7703
    <javanative: 'java/lang/Float' name: 'intBitsToFloat(I)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7704
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7705
    | i f|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7706
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7707
    i := nativeContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7708
    f := ShortFloat new.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7709
%{
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7710
    int ival = __intVal(i);
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7711
    float *fval = &ival;
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7712
    __shortFloatVal(f) = *fval;
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7713
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7714
    ^f
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7715
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
  7716
    "Modified: / 16-12-2012 / 10:39:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7717
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7718
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7719
_java_lang_Object_clone: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7720
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7721
    <javanative: 'java/lang/Object' name: 'clone'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7723
        "clone an object"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7725
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7726
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7727
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7728
    rslt := o shallowCopy.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7729
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7730
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7731
    "Created: / 4.1.1998 / 19:39:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7732
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7733
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7734
_java_lang_Object_getClass: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7735
    <javanative: 'java/lang/Object' name: 'getClass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7736
    "return an objects class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7737
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7738
    | o  cls  jClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7739
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7740
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7741
    cls := o class.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7742
    jClass := self javaClassObjectForClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7743
    ^ jClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7744
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7745
    "Created: / 6.1.1998 / 18:28:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7746
    "Modified: / 23.1.1998 / 17:48:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7747
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7748
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7749
_java_lang_Object_hashCode: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7750
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7751
    <javanative: 'java/lang/Object' name: 'hashCode'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7753
        "identityHash"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7754
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7755
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7756
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7757
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7758
    rslt := o identityHash.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7759
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7760
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7761
    "Created: / 4.1.1998 / 19:40:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7762
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7763
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7764
_java_lang_Object_notify: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7765
    <javanative: 'java/lang/Object' name: 'notify'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7766
    "wakeup"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7767
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7768
    self notify: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7769
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7770
    "Created: / 06-01-1998 / 21:09:26 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7771
    "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
  7772
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7773
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7774
_java_lang_Object_notifyAll: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7775
    <javanative: 'java/lang/Object' name: 'notifyAll'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7776
    self notifyAll: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7777
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7778
    "Created: / 03-01-1998 / 03:06:56 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7779
    "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
  7780
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7781
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7782
_java_lang_Object_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7783
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7784
    <javanative: 'java/lang/Object' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7785
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7786
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7787
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7788
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7789
    "Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7790
    "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7791
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7792
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7793
_java_lang_Object_wait: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7794
    <javanative: 'java/lang/Object' name: 'wait'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7795
    | tmo  handle |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7796
    handle := nativeContext receiver.
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7797
    tmo := nativeContext argAt: 1.
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7798
    tmo < 0 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7799
        self throwIllegalArgumentException: '1'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7800
    ].
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7801
    self
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7802
        waitOn: handle forTimeout: tmo
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7803
        state: #javaWait.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7805
    "Modified: / 30-12-1998 / 19:20:43 / cg"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7806
    "Modified: / 22-11-2011 / 13:17:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7807
    "Modified: / 19-09-2012 / 16:19:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7808
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7809
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7810
_java_lang_Package_getSystemPackage0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7811
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7812
    <javanative: 'java/lang/Package' name: 'getSystemPackage0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7813
909
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7814
    "Based on code on OpenJDK, it is ok to return nil here:"
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7815
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7816
    | syspkg syspkg_s |
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7817
    syspkg := nativeContext argAt: 1.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7818
    syspkg isNil ifTrue:[ ^ nil ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7819
    syspkg_s := Java as_ST_String: syspkg.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7820
    ^(ClassRegistry systemPackage: syspkg_s) notNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7821
        syspkg
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7822
    ] ifFalse:[
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7823
        nil
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7824
    ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7825
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7826
    "Modified: / 16-08-2012 / 17:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7827
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7828
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7829
_java_lang_ProcessEnvironment_environ: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7830
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7831
    <javanative: 'java/lang/ProcessEnvironment' name: 'environ'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7832
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7833
    | env jenv i|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7834
    env := OperatingSystem getEnvironment.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7835
    jenv :=  ByteArray javaArrayClass new: env size * 2.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7836
    i := 1.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7837
    env keysAndValuesDo:
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7838
        [:name :value|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7839
        jenv
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7840
            at: i   put: name  asByteArray;
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7841
            at: i+1 put: value asByteArray.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7842
        i := i + 2].
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7843
    ^jenv
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7844
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7845
    "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
  7846
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7847
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7848
_java_lang_ProcessEnvironment_environmentBlock: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7849
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7850
    <javanative: 'java/lang/ProcessEnvironment' name: 'environmentBlock()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7851
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7852
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7853
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7854
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7855
_java_lang_Runtime_availableProcessors: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7856
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7857
    <javanative: 'java/lang/Runtime' name: 'availableProcessors()I'>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7858
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7859
    /**
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7860
     * Returns the number of processors available to the Java virtual machine.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7861
     *
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7862
     * <p> This value may change during a particular invocation of the virtual
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7863
     * machine.  Applications that are sensitive to the number of available
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7864
     * processors should therefore occasionally poll this property and adjust
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7865
     * their resource usage appropriately. </p>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7866
     *
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7867
     * @return  the maximum number of processors available to the virtual
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7868
     *          machine; never smaller than one
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7869
     * @since 1.4
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7870
     */
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7871
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7872
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7873
    ^ 1 "/ Since Smalltalk/X is single-thread application
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7874
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7875
    "Modified: / 03-09-2012 / 18:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7876
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7877
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7878
_java_lang_Runtime_freeMemory: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7879
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7880
    <javanative: 'java/lang/Runtime' name: 'freeMemory()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7881
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7882
        "free memory - Returns the number of free bytes"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7883
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7884
    ^ ObjectMemory freeListSpace + ObjectMemory freeSpace
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7885
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7886
    "Created: / 12.1.1998 / 12:59:53 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7887
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7888
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7889
_java_lang_Runtime_gc: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7890
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7891
    <javanative: 'java/lang/Runtime' name: 'gc'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7892
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7893
        "Runs the garbage collector.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7894
     Ignored, since the ST-gc runs all the time."
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7895
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7896
    ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7897
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7898
    "Modified: / 12.1.1998 / 12:58:32 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7899
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7900
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7901
_java_lang_Runtime_runFinalization0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7902
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7903
    <javanative: 'java/lang/Runtime' name: 'runFinalization0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7904
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7905
    Smalltalk garbageCollect
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7906
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7907
    "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
  7908
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7909
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7910
_java_lang_SecurityManager_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7911
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7912
    <javanative: 'java/lang/SecurityManager' name: 'getClassContext'>
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7913
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7914
    /**
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7915
     * Returns the current execution stack as an array of classes.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7916
     * <p>
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7917
     * The length of the array is the number of methods on the execution
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7918
     * stack. The element at index <code>0</code> is the class of the
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7919
     * currently executing method, the element at index <code>1</code> is
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7920
     * the class of that method's caller, and so on.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7921
     *
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7922
     * @return  the execution stack.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7923
     */
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7924
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7925
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7926
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7927
    | classes ctx jclasses |
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7928
    classes := OrderedCollection new.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7929
    ctx := thisContext.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7930
    [ ctx notNil ] whileTrue: [
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7931
        ctx isJavaContext ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7932
            classes add: ctx method javaClass.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7933
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7934
        ctx := ctx sender.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7935
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7936
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7937
    jclasses := (self classForName:'java.lang.Class') javaArrayClass new: classes size.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7938
    1 to: classes size do:[:i|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7939
        jclasses at: i put: (self reflection javaClassObjectForClass: (classes at: i)).
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7940
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7941
    ^jclasses
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7942
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7943
    "Created: / 12-11-1998 / 18:56:06 / cg"
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7944
    "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
  7945
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7946
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7947
_java_lang_Shutdown_halt0: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7948
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7949
    <javanative: 'java/lang/Shutdown' name: 'halt0'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7950
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7951
    AbortOperationRequest raise
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7952
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
  7953
    "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
  7954
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7955
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7956
_java_lang_StrictMath_cbrt: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7957
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7958
    <javanative: 'java/lang/StrictMath' name: 'cbrt'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7959
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7960
    ^ JavaMathSupport cbrt: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7961
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7962
    "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
  7963
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7964
1639
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7965
_java_lang_StrictMath_ceil: nativeContext
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7966
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7967
    <javanative: 'java/lang/StrictMath' name: 'ceil(D)D'>
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7968
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7969
    ^ (nativeContext argAt:1) ceiling
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7970
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7971
    "Modified: / 21-08-2012 / 18:01:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7972
!
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7973
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7974
_java_lang_StrictMath_cos: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7975
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7976
    <javanative: 'java/lang/StrictMath' name: 'cos'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7977
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7978
    ^ JavaMathSupport cos: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7979
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7980
    "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
  7981
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7982
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7983
_java_lang_StrictMath_cosh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7984
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7985
    <javanative: 'java/lang/StrictMath' name: 'cosh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7986
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7987
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7988
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7989
     * Returns the hyperbolic cosine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7990
     * The hyperbolic cosine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7991
     * (<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7992
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7993
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7994
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7995
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7996
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7997
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7998
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7999
     * <li>If the argument is infinite, then the result is positive
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8000
     * infinity.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8001
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8002
     * <li>If the argument is zero, then the result is {@code 1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8003
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8004
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8005
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8006
     * @param   x The number whose hyperbolic cosine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8007
     * @return  The hyperbolic cosine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8008
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8009
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8010
    public static native double cosh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8011
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8012
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8013
    ^JavaMathSupport cosh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8014
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8015
    "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
  8016
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8017
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8018
_java_lang_StrictMath_expm1: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8019
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8020
    <javanative: 'java/lang/StrictMath' name: 'expm1'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8021
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8022
    ^ JavaMathSupport expm1: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8023
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8024
    "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
  8025
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8026
895
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  8027
_java_lang_StrictMath_floor: nativeContext
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  8028
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  8029
    <javanative: 'java/lang/StrictMath' name: 'floor'>
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  8030
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8031
   ^ JavaMathSupport floor: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8032
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8033
    "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
  8034
!
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8035
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8036
_java_lang_StrictMath_pow: nativeContext
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8037
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8038
    <javanative: 'java/lang/StrictMath' name: 'pow(DD)D'>
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8039
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8040
    ^JavaMathSupport pow: (nativeContext argAt:1) to: (nativeContext argAt:3)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8041
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8042
    "Modified: / 07-09-2011 / 17:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8043
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8044
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8045
_java_lang_StrictMath_sin: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8046
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8047
    <javanative: 'java/lang/StrictMath' name: 'cos'>
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8048
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8049
    ^ JavaMathSupport sin: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8050
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8051
    "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
  8052
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8053
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8054
_java_lang_StrictMath_sinh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8055
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8056
    <javanative: 'java/lang/StrictMath' name: 'sinh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8057
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8058
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8059
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8060
     * Returns the hyperbolic sine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8061
     * The hyperbolic sine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8062
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8063
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8064
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8065
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8066
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8067
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8068
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8069
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8070
     * <li>If the argument is infinite, then the result is an infinity
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8071
     * with the same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8072
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8073
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8074
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8075
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8076
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8077
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8078
     * @param   x The number whose hyperbolic sine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8079
     * @return  The hyperbolic sine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8080
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8081
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8082
    public static native double sinh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8083
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8084
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8085
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8086
    ^ JavaMathSupport sinh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8087
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8088
    "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
  8089
    "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
  8090
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8091
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8092
_java_lang_StrictMath_sqrt: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8093
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8094
    <javanative: 'java/lang/StrictMath' name: 'sqrt(D)D'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8095
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8096
    ^(nativeContext argAt:1) sqrt
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8097
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8098
    "Modified: / 17-07-2012 / 20:53:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8099
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8100
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8101
_java_lang_StrictMath_tan: nativeContext
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8102
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8103
    <javanative: 'java/lang/StrictMath' name: 'tan(D)D'>
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8104
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8105
    ^ UnimplementedNativeMethodSignal raise
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8106
!
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8107
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8108
_java_lang_StrictMath_tanh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8109
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8110
    <javanative: 'java/lang/StrictMath' name: 'tanh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8111
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8112
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8113
     * Returns the hyperbolic tangent of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8114
     * The hyperbolic tangent of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8115
     * (<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
  8116
     * in other words, {@linkplain Math#sinh
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8117
     * sinh(<i>x</i>)}/{@linkplain Math#cosh cosh(<i>x</i>)}.  Note
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8118
     * that the absolute value of the exact tanh is always less than
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8119
     * 1.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8120
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8121
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8122
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8123
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8124
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8125
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8126
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8127
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8128
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8129
     * <li>If the argument is positive infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8130
     * {@code +1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8131
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8132
     * <li>If the argument is negative infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8133
     * {@code -1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8134
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8135
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8136
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8137
     * @param   x The number whose hyperbolic tangent is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8138
     * @return  The hyperbolic tangent of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8139
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8140
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8141
    public static native double tanh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8142
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8143
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8144
    ^ JavaMathSupport tanh: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8145
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8146
    "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
  8147
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8148
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8149
_java_lang_String_intern: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8150
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8151
    <javanative: 'java/lang/String' name: 'intern'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8153
        |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8155
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8156
    ^ Java intern:jString
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8157
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8158
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8159
_java_lang_System_arraycopy: nativeContext
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8160
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8161
    <javanative: 'java/lang/System' name: 'arraycopy'>
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8162
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8163
    |srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx|
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8164
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8165
    srcArray := nativeContext argAt:1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8166
    srcArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8167
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8168
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8169
    srcArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8170
        ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8171
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8172
    srcIdx := nativeContext argAt:2.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8173
    dstArray := nativeContext argAt:3.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8174
    dstArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8175
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8176
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8177
    dstArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8178
        ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8179
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8180
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8181
    srcArrayCC := srcArray class javaComponentClass.
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8182
    dstArrayCC := dstArray class javaComponentClass.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8183
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8184
    srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8185
        ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8186
            [srcArrayCC isJavaPrimitiveType
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8187
                ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8188
                    [srcArrayCC ~~ dstArrayCC ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8189
                        [^ self throwArrayStoreException:dstArray]].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8190
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8191
        ifFalse:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8192
            [^ self throwArrayStoreException:dstArray].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8193
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8194
    dstIdx := nativeContext argAt:4.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8195
    count := nativeContext argAt:5.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8196
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8197
    count < 0 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8198
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8199
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8200
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8201
    ((srcIdx < 0) or:[srcIdx + count > srcArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8202
        srcArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8203
            srcArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8204
                ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8205
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8206
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8207
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8208
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8209
    ((dstIdx < 0) or:[dstIdx + count > dstArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8210
        dstArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8211
            dstArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8212
                ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8213
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8214
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8215
        ^ self throwArrayIndexOutOfBoundsException:(dstIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8216
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8217
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8218
    dstEndIdx := dstIdx + count.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8219
    dstIdx := dstIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8220
    srcIdx := srcIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8221
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8222
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8223
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8224
    (srcArray class isBytes and:[dstArray class isBytes]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8225
        dstArray replaceBytesFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8226
    ] ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8227
        dstArrayCC isJavaPrimitiveType ifFalse:[
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8228
            "Copy from array iff src=dst to avoid overwriting a data when copying"
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8229
            srcArray == dstArray ifTrue:[srcArray := srcArray copy].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8230
            1 to: count do:[:i|
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8231
                | obj |
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8232
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8233
                obj := srcArray at:srcIdx + i - 1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8234
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8235
                (obj notNil and:[(self canCast: obj class to: dstArrayCC) not]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8236
                    ^ self throwArrayStoreException:dstArray
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8237
                ].
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8238
                dstArray at: dstIdx + i - 1 put: (srcArray at:srcIdx + i - 1)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8239
            ]
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8240
        ] ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8241
            dstArray replaceFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8242
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8243
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8244
    ^ nil.
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8245
992
6d3e3d937fda Class loader mess cleanup, more will come later...
vranyj1
parents: 988
diff changeset
  8246
    "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
  8247
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8249
_java_lang_System_currentTimeMillis: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8251
    <javanative: 'java/lang/System' name: 'currentTimeMillis'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8252
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8253
    "return the milliseconds since 1.jan.1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8254
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8255
    "Should be OK, see Timestamp>>getMilliseconds & Timestamp>>getSeconds & Timestamp>>utcSecondsSince1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8256
    ^ Timestamp now getMilliseconds
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8258
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8259
     JavaVM _System_currentTimeMillis:nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8260
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8261
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8262
    "Modified: / 23-12-1998 / 21:54:50 / cg"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8263
    "Modified: / 19-07-2012 / 11:44:56 / jv"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8264
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8265
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8266
_java_lang_System_identityHashCode: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8267
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8268
    <javanative: 'java/lang/System' name: 'identityHashCode'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8269
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8270
        |obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8271
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8272
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8273
    ^ obj identityHash
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8274
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8275
    "Modified: / 12.11.1998 / 18:52:07 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8276
    "Created: / 12.11.1998 / 18:54:00 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8277
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8278
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8279
_java_lang_System_initProperties: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8281
    <javanative: 'java/lang/System' name: 'initProperties'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8282
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8283
        |props stProps|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8285
    props := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8286
    stProps := self systemProperties.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8288
    "/ recursively invoke myself on the Java HashTable.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8289
    "/ calling 'put' to stuff in the values ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8290
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8291
    stProps keysAndValuesDo:[:key :value |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8292
	|keyObj valueObj|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8294
	keyObj := Java as_String:key.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8295
	valueObj := Java as_String:value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8296
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8297
	props
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8298
	    perform:#'put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8299
	    with:keyObj
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8300
	    with:valueObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8301
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8302
    ^ props
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8304
    "Created: / 3.1.1998 / 14:25:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8305
    "Modified: / 4.1.1998 / 14:23:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8306
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8307
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8308
_java_lang_System_mapLibraryName: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8310
    <javanative: 'java/lang/System' name: 'mapLibraryName'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8311
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8312
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8313
    | name |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8314
    name := Java as_ST_String: (aJavaContext argAt: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8315
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8316
    OperatingSystem isUNIXlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8317
        ^Java as_String: ('lib' , name , '.so').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8318
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8319
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8320
    OperatingSystem isMSWINDOWSlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8321
        ^Java as_String: ( name , '.dll').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8322
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8324
    self error:'Unknown/Unsupported platform'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8325
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8326
    "Created: / 09-12-2010 / 18:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8327
    "Modified: / 01-04-2011 / 18:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8328
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8329
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8330
_java_lang_System_nanoTime: nativeContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8331
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8332
    <javanative: 'java/lang/System' name: 'nanoTime'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8333
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8334
    ^ OperatingSystem getMicrosecondTime * 1000
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8335
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8336
    "Modified: / 07-08-2011 / 21:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8337
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8338
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8339
_java_lang_System_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8341
    <javanative: 'java/lang/System' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8342
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8343
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8344
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8346
    "Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8347
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8348
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8349
_java_lang_System_setErr0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8350
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8351
    <javanative: 'java/lang/System' name: 'setErr0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8353
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8355
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8357
    self setOpenFile:(self javaConsoleStream ? Stderr) at:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8359
    nativeContext receiver instVarNamed:'err' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8361
    "Created: / 18.3.1997 / 15:02:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8362
    "Modified: / 4.1.1998 / 16:21:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8363
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8365
_java_lang_System_setIn0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8366
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8367
    <javanative: 'java/lang/System' name: 'setIn0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8369
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8370
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8371
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8372
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8373
    self setOpenFile:Stdin at:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8374
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8375
    nativeContext receiver instVarNamed:'in' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8377
    "Created: / 4.1.1998 / 16:16:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8378
    "Modified: / 4.1.1998 / 16:20:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8379
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8380
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8381
_java_lang_System_setOut0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8382
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8383
    <javanative: 'java/lang/System' name: 'setOut0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8385
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8386
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8387
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8388
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8389
    self setOpenFile:(self javaConsoleStream ? Stdout) at:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8390
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8391
    nativeContext receiver instVarNamed:'out' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8393
    "Created: / 4.1.1998 / 16:18:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8394
    "Modified: / 4.1.1998 / 16:20:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8395
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8396
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8397
_java_lang_Thread_currentThread: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8398
    <javanative: 'java/lang/Thread' name: 'currentThread'>
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8399
    | t  p |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8400
    p := Processor activeProcess.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8401
    t := self javaThreadForSTProcess: p.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8402
    nativeContext sender receiver class name
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8403
        = 'java/util/concurrent/locks/ReentrantLock$NonfairSync'
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8404
            ifTrue: [
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8405
                | owner |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8406
                owner := (nativeContext sender receiver
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8407
                            perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8408
                (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8409
            ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8410
    t notNil ifTrue: [ ^ t ].
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8411
    t := self newThread: p name.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8412
    t instVarNamed: 'tid' put: p id.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8413
    Java addThread: t for: p.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8414
    ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8415
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8416
    "Modified: / 04-12-2011 / 20:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8417
    "Modified: / 09-12-2011 / 12:52:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8418
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8419
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8420
_java_lang_Thread_holdsLock: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8421
    <javanative: 'java/lang/Thread' name: 'holdsLock'>
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8422
    | obj  mon  thisProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8423
    obj := aJavaContext argAt: 1.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8424
    obj isNil ifTrue: [self throwNullPointerException:'null given to _java_lang_Thread_holdsLock'].
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  8425
    mon := obj getJavaMonitor.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8426
    thisProcess := Processor activeProcess.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8427
    (mon isOwnedBy: thisProcess) ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8429
    "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
  8430
    "Modified: / 09-12-2011 / 11:13:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  8431
    "Modified: / 27-08-2012 / 11:36:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8432
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8433
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8434
_java_lang_Thread_interrupt0: nativeContext
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8435
    <javanative: 'java/lang/Thread' name: 'interrupt0()V'>
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8436
    | jThread  stProcess |
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8437
    jThread := nativeContext receiver.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8438
    stProcess := self stProcessForJavaThread: jThread.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8439
    self assert: stProcess notNil.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8440
    stProcess javaInterrupt.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8441
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8442
    "Modified: / 02-01-1998 / 21:49:06 / cg"
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8443
    "Created: / 10-04-1998 / 15:21:43 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8444
    "Modified: / 30-11-2011 / 13:36:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8445
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8446
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8447
_java_lang_Thread_isAlive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8448
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8449
    <javanative: 'java/lang/Thread' name: 'isAlive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8451
        "is it alive ?"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8452
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8453
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8454
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8455
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8456
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8457
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8458
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8459
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8460
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8461
	^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8462
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8463
    stProcess isDead ifTrue:[^ 0 "FALSE"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8464
    ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8466
    "Created: / 5.1.1998 / 02:03:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8467
    "Modified: / 6.2.1998 / 02:15:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8468
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8469
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8470
_java_lang_Thread_isInterrupted: nativeContext
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8471
    <javanative: 'java/lang/Thread' name: 'isInterrupted'>
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8472
    "ask if a thread is interrupted (clear interruptState if arg is true)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8473
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8474
    | jThread  stProcess  clearInterrupt  wasInterrupted |
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8475
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8476
    stProcess := self stProcessForJavaThread: jThread.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8477
    self assert: stProcess notNil.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8478
    clearInterrupt := nativeContext argAt: 1.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8479
    wasInterrupted := stProcess isInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8480
    clearInterrupt ~~ 0 ifTrue: [ stProcess clearInterrupted ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8481
    stProcess isDead ifTrue: [ ^ 0 ].
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8482
    wasInterrupted ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8483
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8484
    "Modified: / 02-01-1998 / 21:49:06 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8485
    "Created: / 07-01-1998 / 18:50:26 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8486
    "Modified: / 05-08-2011 / 22:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8487
    "Modified: / 30-11-2011 / 12:22:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8488
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8489
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8490
_java_lang_Thread_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8491
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8492
    <javanative: 'java/lang/Thread' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8493
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8494
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8495
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8496
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8497
    "Created: / 20-10-2010 / 11:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8498
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8499
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8500
_java_lang_Thread_resume0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8501
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8502
    <javanative: 'java/lang/Thread' name: 'resume0()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8503
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8504
        "yield"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8505
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8506
    |jThread stProcess|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8507
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8508
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8509
    stProcess := JavaVM stProcessForJavaThread:jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8510
    stProcess isNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8511
	ThreadTrace == true ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8512
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8513
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8514
	^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8515
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8516
    stProcess resume
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8517
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8518
    "Created: / 8.1.1998 / 01:06:27 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8519
    "Modified: / 6.2.1998 / 02:15:08 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8520
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8521
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8522
_java_lang_Thread_setPriority0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8523
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8524
    <javanative: 'java/lang/Thread' name: 'setPriority0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8526
   |t p prio|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8528
    t := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8529
    p := JavaVM stProcessForJavaThread:t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8530
    prio := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8531
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8532
    p isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8533
        ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8534
            'JAVA [info]: no process yet (in setPriority)' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8535
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8536
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8537
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8539
    "Modified: / 01-05-2011 / 13:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8540
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8541
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8542
_java_lang_Thread_sleep: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8543
    <javanative: 'java/lang/Thread' name: 'sleep'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8544
    "sleep for some milliseconds "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8545
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8546
    | millis |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8547
    millis := nativeContext argAt: 1.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8548
    millis < 0 ifTrue: [
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8549
        self throwIllegalArgumentException: ('negative timeout: %1 in Thread.sleep' bindWith: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8550
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8551
    Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8552
        log: ('%1 going to sleep for %2'
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8553
                bindWith: Processor activeProcess printString
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8554
                with: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8555
        severity: #debug
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8556
        facility: #JVM.
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8557
    self sleepForTimeout: millis state: #sleep.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8558
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8559
    "Modified: / 08-01-1999 / 16:42:52 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8560
    "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
  8561
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8562
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8563
_java_lang_Thread_start0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8565
    <javanative: 'java/lang/Thread' name: 'start0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8566
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8567
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8568
    ^self threadStart: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8570
    "Modified: / 24-12-1999 / 03:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8571
    "Created: / 22-11-2010 / 17:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8572
    "Modified: / 14-12-2010 / 21:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8573
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8574
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8575
_java_lang_Thread_stop0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8576
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8577
    <javanative: 'java/lang/Thread' name: 'stop0(Ljava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8578
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8579
        "terminate a thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8580
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8581
    | jThread  stProcess  death |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8582
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8583
    stProcess := JavaVM stProcessForJavaThread: jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8584
    stProcess isNil ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8585
        ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8586
            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8587
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8588
        ^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8589
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8590
    stProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8591
    stProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8592
    death := nativeContext argAt: 1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8593
    stProcess
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8594
        interruptWith: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8595
            JavaVM javaExceptionSignal
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8596
                handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8597
                    :ex |
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8598
                    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8599
                    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8600
                    Processor activeProcess terminate
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8601
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8602
                do: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8603
                    ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8604
                        ('JAVA: thread exit: ' , jThread displayString) infoPrintNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8605
                    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8606
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8607
                    jThread perform: #'exit()V'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8608
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8609
                    self throwException: death.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8610
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8611
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8612
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8613
    "Created: / 08-01-1998 / 13:11:17 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8614
    "Modified: / 24-12-1999 / 02:32:45 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8615
    "Modified: / 01-12-2011 / 18:26:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8616
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8617
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8618
_java_lang_Thread_yield: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8619
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8620
    <javanative: 'java/lang/Thread' name: 'yield()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8621
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8622
        "yield"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8623
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8624
    |jThread stProcess|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8625
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8626
    Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8627
"/    jThread := nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8628
"/    stProcess := JavaVM stProcessForJavaThread:jThread.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8629
"/    stProcess isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8630
"/        ThreadTrace == true ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8631
"/            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8632
"/        ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8633
"/        ^ nil "void"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8634
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8635
"/    stProcess == Processor activeProcess ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8636
"/        Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8637
"/    ] ifFalse:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8638
"/        self halt.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8639
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8640
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8641
    "Created: / 5.1.1998 / 02:03:51 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8642
    "Modified: / 23.12.1998 / 19:19:17 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8643
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8644
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8645
_java_lang_Throwable_fillInStackTrace: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8646
    <javanative: 'java/lang/Throwable' name: 'fillInStackTrace'>
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8647
    | java_lang_Throwable  exceptionObject  list  con |
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8648
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8649
    java_lang_Throwable := Java classNamed: 'java/lang/Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8650
    exceptionObject := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8651
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8652
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8653
    "/ debugging only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8654
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8655
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8656
    (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
  8657
        self error:'Thrown object is not a java.lang.Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8658
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8659
    con := thisContext sender.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8660
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8661
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8662
    "/ we are not interrested in all intermediate Exception frames ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8663
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8664
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8665
    FullExceptionTrace ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8666
        "/ first, skip any JavaVM contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8667
        [ con receiver == exceptionObject ] whileFalse: [ con := con sender ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8668
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8669
        "/ then, all exception-init contexts
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8670
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8671
        [ con receiver == exceptionObject ] whileTrue: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8672
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8673
    list := OrderedCollection new.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8674
    [ con notNil ] whileTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8675
        (con isJavaContext) ifTrue: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8676
            "/ 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
  8677
            "/ cleanup ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8678
            list add: con shallowCopy
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8679
        ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8680
        con := con sender
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8681
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8682
    exceptionObject instVarNamed: 'backtrace' put: (list asArray).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8683
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8684
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8685
    "Created: / 04-01-1998 / 14:27:40 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8686
    "Modified: / 08-05-1998 / 21:29:53 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8687
    "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
  8688
    "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
  8689
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8690
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8691
_java_lang_Throwable_getStackTraceDepth: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8692
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8693
    <javanative: 'java/lang/Throwable' name: 'getStackTraceDepth'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8694
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8695
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8696
    ^(nativeContext receiver instVarNamed: #backtrace) size
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8697
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8698
    "Modified: / 01-05-2011 / 20:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8699
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8700
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8701
_java_lang_Throwable_getStackTraceElement: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8702
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8703
    <javanative: 'java/lang/Throwable' name: 'getStackTraceElement'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8704
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8705
    | throwable index ctx stackTraceElement |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8706
    throwable := nativeContext receiver.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8707
    index :=  nativeContext argAt: 1.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8708
    ctx := (throwable instVarNamed:#backtrace) at: index + 1.
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8709
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8710
    stackTraceElement := (self classForName: 'java.lang.StackTraceElement') new.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8711
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8712
    stackTraceElement
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8713
        instVarNamed: #declaringClass
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8714
        put: (Java as_String:(ctx method javaClass javaName));
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8715
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8716
        instVarNamed: #methodName
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8717
        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
  8718
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8719
        instVarNamed: #lineNumber
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8720
        put: ctx lineNumber.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8721
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8722
    ctx method javaClass sourceFile notNil ifTrue:[
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8723
        stackTraceElement
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8724
            instVarNamed: #fileName
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8725
            put: (Java as_String:(ctx method javaClass sourceFile))
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8726
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8727
    ^ stackTraceElement
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8728
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8729
    "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
  8730
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8731
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8732
_java_lang_UNIXProcess_forkAndExec: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8733
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8734
    <javanative: 'java/lang/UNIXProcess' name: 'forkAndExec'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8735
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8736
    "^ UnimplementedNativeMethodSignal raise"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8737
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8738
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8739
_java_lang_UNIXProcess_initIDs: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8740
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8741
    <javanative: 'java/lang/UNIXProcess' name: 'initIDs'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8742
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8743
    "Nothing to do"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8744
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8745
    "Modified: / 25-06-2011 / 10:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8746
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8747
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8748
_java_lang_UNIXProcess_waitForProcessExit: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8749
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8750
    <javanative: 'java/lang/UNIXProcess' name: 'waitForProcessExit(I)I'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8751
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8752
    "^ UnimplementedNativeMethodSignal raise"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8753
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8754
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8755
1550
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8756
!JavaVM class methodsFor:'native - java.lang.ref'!
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8757
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8758
_java_lang_ref_Finalizer_invokeFinalizeMethod: nativeContext
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8759
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8760
    <javanative: 'java/lang/ref/Finalizer' name: 'invokeFinalizeMethod(Ljava/lang/Object;)V'>
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8761
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8762
    | o |
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8763
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8764
    o := nativeContext argAt:1.
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8765
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8766
    Logger log: 'Finalizing ' , o printString  severity: #debug facility: 'JVM' .
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8767
    o perform:#'finalize()V'
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8768
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8769
    "Modified: / 24-07-2012 / 11:11:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8770
! !
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8771
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8772
!JavaVM class methodsFor:'native - java.lang.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8773
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8774
_java_lang_reflect_Array_getLength: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8775
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8776
    <javanative: 'java/lang/reflect/Array' name: 'getLength(Ljava/lang/Object;)I'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8777
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8778
    ^(nativeContext argAt: 1) size
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8779
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8780
    "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
  8781
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8782
1151
vranyj1
parents: 1150
diff changeset
  8783
_java_lang_reflect_Array_multiNewArray: nativeContext
vranyj1
parents: 1150
diff changeset
  8784
vranyj1
parents: 1150
diff changeset
  8785
    <javanative: 'java/lang/reflect/Array' name: 'multiNewArray(Ljava/lang/Class;[I)Ljava/lang/Object;'>
vranyj1
parents: 1150
diff changeset
  8786
vranyj1
parents: 1150
diff changeset
  8787
    |componentClass sizes cls array |
vranyj1
parents: 1150
diff changeset
  8788
vranyj1
parents: 1150
diff changeset
  8789
    (nativeContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8790
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8791
        ^nil.
vranyj1
parents: 1150
diff changeset
  8792
    ].
vranyj1
parents: 1150
diff changeset
  8793
    (nativeContext argAt:2) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8794
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8795
        ^nil.
vranyj1
parents: 1150
diff changeset
  8796
    ].
vranyj1
parents: 1150
diff changeset
  8797
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8798
    componentClass := self reflection
1151
vranyj1
parents: 1150
diff changeset
  8799
                classForJavaClassObject:(nativeContext argAt:1).
vranyj1
parents: 1150
diff changeset
  8800
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8801
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8802
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8803
    ].
1151
vranyj1
parents: 1150
diff changeset
  8804
    sizes := nativeContext argAt:2.
vranyj1
parents: 1150
diff changeset
  8805
    sizes class == SignedIntegerArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8806
        self throwIllegalArgumentException:('sizes arguments not instance of int[] (is: %1)' bindWith: sizes class).
vranyj1
parents: 1150
diff changeset
  8807
        ^nil
vranyj1
parents: 1150
diff changeset
  8808
    ].
vranyj1
parents: 1150
diff changeset
  8809
    sizes size == 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8810
        self throwIllegalArgumentException:('sizes argument has no elements').
vranyj1
parents: 1150
diff changeset
  8811
        ^nil
vranyj1
parents: 1150
diff changeset
  8812
    ].
vranyj1
parents: 1150
diff changeset
  8813
    array := nil.
vranyj1
parents: 1150
diff changeset
  8814
    cls := componentClass.
vranyj1
parents: 1150
diff changeset
  8815
    sizes do:[:size|
vranyj1
parents: 1150
diff changeset
  8816
        | newArray |
vranyj1
parents: 1150
diff changeset
  8817
        size > SmallInteger maxVal ifTrue:[
vranyj1
parents: 1150
diff changeset
  8818
            "This is just for Mauve tests"
vranyj1
parents: 1150
diff changeset
  8819
            self throwExceptionClassName:'java.lang.OutOfMemoryError'
vranyj1
parents: 1150
diff changeset
  8820
                             withMessage:'array size too big'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8821
            ^nil.
1151
vranyj1
parents: 1150
diff changeset
  8822
        ].
vranyj1
parents: 1150
diff changeset
  8823
        size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8824
            self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8825
                             withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8826
            ^nil
vranyj1
parents: 1150
diff changeset
  8827
        ].
vranyj1
parents: 1150
diff changeset
  8828
        cls := cls javaArrayClass.
vranyj1
parents: 1150
diff changeset
  8829
        newArray := cls new: size.
vranyj1
parents: 1150
diff changeset
  8830
        1 to: size do:[:i|
vranyj1
parents: 1150
diff changeset
  8831
            newArray at:i put: array copy.
vranyj1
parents: 1150
diff changeset
  8832
        ].
vranyj1
parents: 1150
diff changeset
  8833
        array := newArray.
vranyj1
parents: 1150
diff changeset
  8834
    ].
vranyj1
parents: 1150
diff changeset
  8835
    ^array.
vranyj1
parents: 1150
diff changeset
  8836
vranyj1
parents: 1150
diff changeset
  8837
    "Modified: / 22-11-2011 / 10:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
  8838
!
vranyj1
parents: 1150
diff changeset
  8839
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8840
_java_lang_reflect_Array_newArray:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8841
    <javanative: 'java/lang/reflect/Array' name: 'newArray'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8842
    |componentClass size|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8843
1151
vranyj1
parents: 1150
diff changeset
  8844
    (aJavaContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8845
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8846
        ^nil.
vranyj1
parents: 1150
diff changeset
  8847
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8848
    componentClass := self reflection
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8849
                classForJavaClassObject:(aJavaContext argAt:1).
1151
vranyj1
parents: 1150
diff changeset
  8850
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8851
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8852
        ^nil
vranyj1
parents: 1150
diff changeset
  8853
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8854
    size := aJavaContext argAt:2.
1151
vranyj1
parents: 1150
diff changeset
  8855
    size < 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8856
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8857
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8858
        ^nil
vranyj1
parents: 1150
diff changeset
  8859
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8860
    ^ componentClass javaArrayClass new:size
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8861
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8862
    "Created: / 17-12-2010 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8863
    "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
  8864
    "Modified: / 04-06-2011 / 17:06:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
  8865
    "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
  8866
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8867
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8868
_java_lang_reflect_Array_set: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8869
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8870
    <javanative: 'java/lang/reflect/Array' name: 'set'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8871
1151
vranyj1
parents: 1150
diff changeset
  8872
    | array index value |
vranyj1
parents: 1150
diff changeset
  8873
    array :=  nativeContext at:1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8874
    index := (nativeContext at:2) + 1.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8875
    value :=  nativeContext at:3.
1151
vranyj1
parents: 1150
diff changeset
  8876
vranyj1
parents: 1150
diff changeset
  8877
    array isJavaArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8878
        self throwIllegalArgumentException:'passed object is not an array'.
vranyj1
parents: 1150
diff changeset
  8879
        ^nil.
vranyj1
parents: 1150
diff changeset
  8880
    ].
vranyj1
parents: 1150
diff changeset
  8881
    index < 1 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8882
        self throwIllegalArgumentException:'index is negative'.
vranyj1
parents: 1150
diff changeset
  8883
        ^nil.
vranyj1
parents: 1150
diff changeset
  8884
    ].
vranyj1
parents: 1150
diff changeset
  8885
    index > array size ifTrue:[
vranyj1
parents: 1150
diff changeset
  8886
        self throwArrayIndexOutOfBoundsException: index.
vranyj1
parents: 1150
diff changeset
  8887
        ^nil.
vranyj1
parents: 1150
diff changeset
  8888
    ].
vranyj1
parents: 1150
diff changeset
  8889
    value isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8890
        array at: index put: nil.
vranyj1
parents: 1150
diff changeset
  8891
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8892
    ].
1151
vranyj1
parents: 1150
diff changeset
  8893
    (self canCast: value class to: array class javaComponentClass) ifFalse:[
vranyj1
parents: 1150
diff changeset
  8894
        self throwIllegalArgumentException:'type-incompatible value'.
vranyj1
parents: 1150
diff changeset
  8895
        ^nil.
vranyj1
parents: 1150
diff changeset
  8896
    ].
vranyj1
parents: 1150
diff changeset
  8897
    array at: index put: value.
vranyj1
parents: 1150
diff changeset
  8898
vranyj1
parents: 1150
diff changeset
  8899
    "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
  8900
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8901
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8902
_java_lang_reflect_Proxy_defineClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8903
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8904
    <javanative: 'java/lang/reflect/Proxy' name: 'defineClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8905
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8906
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8907
    private static native Class defineClass0(ClassLoader loader, String name,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8908
                                             byte[] b, int off, int len);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8909
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8910
    | loader name b off len  bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8911
    loader := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8912
    name := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8913
    b := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8914
    off := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8915
    len := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8916
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8917
    bs := (off = 0 and: [len = b size])
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8918
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8919
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8920
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8921
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8922
    cls classLoader: loader.
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  8923
    self classRegistry registerClass: cls.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8924
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8925
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8926
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8927
    "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
  8928
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8929
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8930
!JavaVM class methodsFor:'native - java.net'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8931
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8932
_java_net_DatagramPacket_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8933
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8934
    <javanative: 'java/net/DatagramPacket' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8935
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8936
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8937
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8938
    "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
  8939
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8940
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8941
_java_net_Inet4AddressImpl_getHostByAddr: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8942
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8943
    <javanative: 'java/net/Inet4AddressImpl' name: 'getHostByAddr([B)Ljava/lang/String;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8944
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8945
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8946
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8947
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8948
_java_net_Inet4AddressImpl_getLocalHostName: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8949
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8950
    <javanative: 'java/net/Inet4AddressImpl' name: 'getLocalHostName()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8951
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8952
    ^Java as_String: OperatingSystem getHostName
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8953
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8954
    "Modified: / 13-09-2011 / 22:36:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8955
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8956
1084
vranyj1
parents: 1083
diff changeset
  8957
_java_net_Inet4AddressImpl_lookupAllHostAddr: nativeContext
vranyj1
parents: 1083
diff changeset
  8958
vranyj1
parents: 1083
diff changeset
  8959
    <javanative: 'java/net/Inet4AddressImpl' name: 'lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress;'>
vranyj1
parents: 1083
diff changeset
  8960
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8961
    | hostname sockaddr inet4Address |
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8962
    hostname := Java as_ST_String: (nativeContext argAt:1).
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
        sockaddr := IPSocketAddress hostName: hostname.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8965
    ] on: HostNameLookupError do: [:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8966
        self throwExceptionClassName: 'java.net.UnknownHostException' withMessage: (ex description , '(' , hostname , ')').
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8967
        ^nil.
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
    "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
  8970
     that's fine for now, however"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8971
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8972
    inet4Address := (self classForName:'java.net.Inet4Address') newCleared.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8973
    inet4Address
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8974
        instVarNamed: #family put: 1; "/IPv4
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8975
        instVarNamed: #address put: (sockaddr address doubleWordAt: 1 MSB: true);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8976
        instVarNamed: #hostName put: (nativeContext argAt:1);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8977
        instVarNamed: #canonicalHostName put: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8978
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8979
    ^(self classForName:'java.net.InetAddress') javaArrayClass with: inet4Address.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8980
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8981
    "Modified: / 08-11-2011 / 10:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8982
!
vranyj1
parents: 1083
diff changeset
  8983
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8984
_java_net_Inet4Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8985
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8986
    <javanative: 'java/net/Inet4Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8987
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8988
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8989
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8990
    "Modified: / 13-09-2011 / 22:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8991
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8992
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8993
_java_net_Inet6Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8994
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8995
    <javanative: 'java/net/Inet6Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8996
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8997
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8998
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8999
    "Modified: / 13-09-2011 / 22:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9000
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9001
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9002
_java_net_InetAddressImplFactory_isIPv6Supported: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9003
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9004
    <javanative: 'java/net/InetAddressImplFactory' name: 'isIPv6Supported'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9005
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9006
    ^ 0 "IPv6 is not supported!!"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9007
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9008
    "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
  9009
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9010
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9011
_java_net_InetAddress_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9012
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9013
    <javanative: 'java/net/InetAddress' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9014
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9015
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9016
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9017
    "Created: / 27-01-1998 / 18:16:40 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9018
    "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
  9019
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9020
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9021
_java_net_NetworkInterface_getAll: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9022
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9023
    <javanative: 'java/net/NetworkInterface' name: 'getAll()[Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9024
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9025
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9026
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9027
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9028
_java_net_NetworkInterface_getByName0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9029
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9030
    <javanative: 'java/net/NetworkInterface' name: 'getByName0(Ljava/lang/String;)Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9031
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9032
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9033
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9034
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9035
_java_net_NetworkInterface_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9036
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9037
    <javanative: 'java/net/NetworkInterface' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9038
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9039
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9040
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9041
    "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
  9042
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9043
1084
vranyj1
parents: 1083
diff changeset
  9044
_java_net_PlainDatagramSocketImpl_bind0: nativeContext
vranyj1
parents: 1083
diff changeset
  9045
vranyj1
parents: 1083
diff changeset
  9046
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'bind0(ILjava/net/InetAddress;)V'>
vranyj1
parents: 1083
diff changeset
  9047
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9048
    | port addr sock fd |
1084
vranyj1
parents: 1083
diff changeset
  9049
vranyj1
parents: 1083
diff changeset
  9050
    port := nativeContext argAt: 1.
vranyj1
parents: 1083
diff changeset
  9051
    addr := nativeContext argAt: 2.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9052
    addr isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9053
        self throwSocketException: 'Passed InetAddress object is null'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9054
        ^nil.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9055
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9056
    fd := nativeContext receiver instVarNamed: #fd.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9057
    fd isNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9058
        self throwSocketException: 'Socket closed'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9059
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9060
    ].
1084
vranyj1
parents: 1083
diff changeset
  9061
    sock := self validateFile: nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9062
vranyj1
parents: 1083
diff changeset
  9063
    addr := addr perform: #'getAddress()[B'.
vranyj1
parents: 1083
diff changeset
  9064
    addr = #[0 0 0 0] ifTrue:[
vranyj1
parents: 1083
diff changeset
  9065
        addr := nil
vranyj1
parents: 1083
diff changeset
  9066
    ] ifFalse:[
vranyj1
parents: 1083
diff changeset
  9067
        self throwSocketException: 'Only all-interface bind is supported by underlaing socket implementation, sorry'.
vranyj1
parents: 1083
diff changeset
  9068
        ^nil
vranyj1
parents: 1083
diff changeset
  9069
    ].
vranyj1
parents: 1083
diff changeset
  9070
    [
vranyj1
parents: 1083
diff changeset
  9071
        sock bindTo: port address: addr reuseAddress: true.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9072
        nativeContext receiver instVarNamed: #localPort put: sock port.
1084
vranyj1
parents: 1083
diff changeset
  9073
    ] on: Error do:[:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9074
        self throwSocketException: 'bind0() failed: ', ex description
1084
vranyj1
parents: 1083
diff changeset
  9075
    ]
vranyj1
parents: 1083
diff changeset
  9076
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9077
    "Modified: / 07-11-2011 / 21:45:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  9078
!
vranyj1
parents: 1083
diff changeset
  9079
vranyj1
parents: 1083
diff changeset
  9080
_java_net_PlainDatagramSocketImpl_datagramSocketClose: nativeContext
vranyj1
parents: 1083
diff changeset
  9081
vranyj1
parents: 1083
diff changeset
  9082
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketClose()V'>
vranyj1
parents: 1083
diff changeset
  9083
vranyj1
parents: 1083
diff changeset
  9084
        |jsock sock|
vranyj1
parents: 1083
diff changeset
  9085
vranyj1
parents: 1083
diff changeset
  9086
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9087
vranyj1
parents: 1083
diff changeset
  9088
    sock := self validateFile:jsock.
vranyj1
parents: 1083
diff changeset
  9089
    sock notNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  9090
	FileIOTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  9091
	    'JAVA: datagram close socket' infoPrintCR
vranyj1
parents: 1083
diff changeset
  9092
	].
vranyj1
parents: 1083
diff changeset
  9093
	sock close.
vranyj1
parents: 1083
diff changeset
  9094
    ].
vranyj1
parents: 1083
diff changeset
  9095
vranyj1
parents: 1083
diff changeset
  9096
    "Modified: / 21.8.1997 / 17:09:40 / cg"
vranyj1
parents: 1083
diff changeset
  9097
    "Created: / 25.1.1998 / 20:04:24 / cg"
vranyj1
parents: 1083
diff changeset
  9098
!
vranyj1
parents: 1083
diff changeset
  9099
vranyj1
parents: 1083
diff changeset
  9100
_java_net_PlainDatagramSocketImpl_datagramSocketCreate: nativeContext
vranyj1
parents: 1083
diff changeset
  9101
vranyj1
parents: 1083
diff changeset
  9102
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketCreate()V'>
vranyj1
parents: 1083
diff changeset
  9103
vranyj1
parents: 1083
diff changeset
  9104
        |jsock fd sock fileNo|
vranyj1
parents: 1083
diff changeset
  9105
vranyj1
parents: 1083
diff changeset
  9106
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9107
vranyj1
parents: 1083
diff changeset
  9108
    fd := jsock instVarNamed:'fd'.
vranyj1
parents: 1083
diff changeset
  9109
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
vranyj1
parents: 1083
diff changeset
  9110
        self halt:'file already open'.
vranyj1
parents: 1083
diff changeset
  9111
        self internalError:'file already open'.
vranyj1
parents: 1083
diff changeset
  9112
        self throwIOExceptionWithMessage:'file already open in socketCreate'.
vranyj1
parents: 1083
diff changeset
  9113
        ^ self.
vranyj1
parents: 1083
diff changeset
  9114
    ].
vranyj1
parents: 1083
diff changeset
  9115
vranyj1
parents: 1083
diff changeset
  9116
    FileOpenTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  9117
        ('JAVA: create datagram socket') infoPrintCR.
vranyj1
parents: 1083
diff changeset
  9118
    ].
vranyj1
parents: 1083
diff changeset
  9119
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9120
    sock := self commonOpenStreamUsing:[Socket newUDP].
1084
vranyj1
parents: 1083
diff changeset
  9121
    sock isNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  9122
        self throwIOExceptionWithMessage:'socketCreate failed'.
vranyj1
parents: 1083
diff changeset
  9123
    ].
vranyj1
parents: 1083
diff changeset
  9124
vranyj1
parents: 1083
diff changeset
  9125
    fileNo := self addOpenFile:sock.
vranyj1
parents: 1083
diff changeset
  9126
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9127
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9128
    jsock finalizationLobby registerChange: jsock
1084
vranyj1
parents: 1083
diff changeset
  9129
vranyj1
parents: 1083
diff changeset
  9130
    "Created: / 25-01-1998 / 19:59:25 / cg"
vranyj1
parents: 1083
diff changeset
  9131
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9132
    "Modified: / 23-07-2012 / 19:37:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  9133
!
vranyj1
parents: 1083
diff changeset
  9134
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9135
_java_net_PlainDatagramSocketImpl_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9136
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9137
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9138
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9139
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9140
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9141
    "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
  9142
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9143
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9144
_java_net_PlainDatagramSocketImpl_receive0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9145
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9146
    <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
  9147
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9148
    ^ UnimplementedNativeMethodSignal raise
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9149
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9150
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9151
_java_net_PlainDatagramSocketImpl_send: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9152
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9153
    <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
  9154
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9155
        |jsock jdatagramPacket sock ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9156
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9157
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9158
    jdatagramPacket := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9159
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9160
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9161
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9162
	FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9163
	    ('JAVA: socket send') infoPrintCR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9164
	].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9165
	^ -1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9166
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9167
    ^ -1
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9168
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9169
    "Created: / 4.2.1998 / 15:06:20 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9170
    "Modified: / 30.12.1998 / 20:10:16 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9171
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9172
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9173
_java_net_PlainDatagramSocketImpl_socketSetOption: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9174
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9175
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'socketSetOption(ILjava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9176
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9177
        "/ native void socketSetOption (int arg1, java.lang.Object arg2)
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9178
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9179
    |jsock opt optVal sock ok err jSocketOptions|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9180
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9181
    jsock := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9182
    opt := nativeContext argAt:1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9183
    optVal := nativeContext argAt:2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9184
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9185
    sock := self validateFile:jsock.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9186
    sock notNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9187
	FileIOTrace ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9188
	    ('JAVA: socket setOption ' , opt printString) infoPrintCR
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9189
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9190
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9191
	jSocketOptions := Java at:'java.net.SocketOptions'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9192
	(opt == (jSocketOptions instVarNamed:'TCP_NODELAY')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9193
	] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9194
	    (opt == (jSocketOptions instVarNamed:'SO_BINDADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9195
	    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9196
		(opt == (jSocketOptions instVarNamed:'SO_REUSEADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9197
		] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9198
		    (opt == (jSocketOptions instVarNamed:'IP_MULTICAST_IF')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9199
		    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9200
			(opt == (jSocketOptions instVarNamed:'SO_LINGER')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9201
			] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9202
			    (opt == (jSocketOptions instVarNamed:'SO_TIMEOUT')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9203
			    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9204
				self throwIOExceptionWithMessage:'bad arg to setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9205
			    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9206
			]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9207
		    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9208
		]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9209
	    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9210
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9211
	self throwIOExceptionWithMessage:'unimplemented: setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9212
self halt.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9213
	^ nil.  "/ void
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9214
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9215
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9216
    "Created: / 4.2.1998 / 15:06:20 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9217
    "Modified: / 30.12.1998 / 20:10:16 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9218
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9219
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9220
_java_net_PlainSocketImpl_initProto: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9221
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9222
    <javanative: 'java/net/PlainSocketImpl' name: 'initProto'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9223
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9224
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9225
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9226
    "Created: / 12-01-1998 / 12:56:52 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9227
    "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
  9228
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9229
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9230
_java_net_PlainSocketImpl_socketAccept: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9231
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9232
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAccept(Ljava/net/SocketImpl;)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9233
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9234
    |jsock fd newJSock sock newSock fileNo|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9235
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9236
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9237
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9238
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9239
    sock isNil ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9240
        self throwIOExceptionWithMessage:'nil socket in accept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9241
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9242
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9243
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9244
    newJSock := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9245
    fd := newJSock instVarNamed:'fd'.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9246
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9247
        self halt:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9248
        self internalError:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9249
        self throwIOExceptionWithMessage:'socket already open in socketAccept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9250
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9251
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9252
    FileIOTrace ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9253
        'JAVA: socket accept' infoPrintCR
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9254
    ].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9255
    [
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9256
        newSock := self commonOpenStreamUsing:[sock accept].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9257
    ] on: Error do:[:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9258
        self throwSocketException:'accept failed: ' , ex description.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9259
        ^nil.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9260
    ].
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9261
    newSock isNil ifTrue:[
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9262
        self throwSocketException:'accept failed'.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9263
        ^nil.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9264
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9265
    fileNo := self addOpenFile:newSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9266
    fd instVarNamed:'fd' put:fileNo.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9267
    newJSock instVarNamed:'localport' put: newSock port.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9268
    newJSock instVarNamed:'port' put: newSock getPeer port.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9269
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9270
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9271
    newJSock finalizationLobby registerChange: newJSock.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9272
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9273
    "Created: / 04-02-1998 / 15:26:49 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9274
    "Modified: / 30-12-1998 / 20:10:01 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9275
    "Modified: / 23-07-2012 / 19:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9276
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9277
1110
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9278
_java_net_PlainSocketImpl_socketAvailable: nativeContext
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9279
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9280
    <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
  9281
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9282
        |jSock sock n|
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9283
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9284
    jSock := nativeContext receiver.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9285
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9286
    sock := self validateFile:jSock.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9287
    sock isNil ifTrue:[
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9288
	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
  9289
	^ self.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9290
    ].
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9291
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9292
    n := sock numAvailable.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9293
    ^ n
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9294
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9295
    "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
  9296
    "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
  9297
!
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9298
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9299
_java_net_PlainSocketImpl_socketBind: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9300
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9301
    <javanative: 'java/net/PlainSocketImpl' name: 'socketBind(Ljava/net/InetAddress;I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9302
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9303
    |jsock jaddr port sock hostName ok err|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9304
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9305
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9306
    jaddr := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9307
    port := nativeContext argAt:2.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9308
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9309
    hostName := jaddr instVarNamed:'hostName'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9310
    hostName isNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9311
        self halt.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9312
    ] ifFalse:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9313
        hostName := Java as_ST_String:hostName
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9314
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9315
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9316
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9317
    sock notNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9318
        FileIOTrace ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9319
            ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9320
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9321
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9322
        [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9323
            ok := sock bindTo:port address:nil "hostName".
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9324
        ] on: Error do: [:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9325
            self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9326
                throwExceptionClassName: 'java.net.BindException'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9327
                withMessage:'bind failed: ' , ex description.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9328
        ].
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9329
        ok ifFalse:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9330
            err := OperatingSystem lastErrorString.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9331
            self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9332
                throwExceptionClassName: 'java.net.BindException'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9333
                withMessage:'bind failed: ' , err.
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9334
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9335
       jsock instVarNamed: #localport put: sock port.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9336
       jsock instVarNamed: #address put: jaddr.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9337
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9338
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9339
    "Created: / 04-02-1998 / 15:06:20 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9340
    "Modified: / 30-12-1998 / 20:10:16 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9341
    "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
  9342
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9343
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9344
_java_net_PlainSocketImpl_socketClose0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9345
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9346
    <javanative: 'java/net/PlainSocketImpl' name: 'socketClose0(Z)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9347
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9348
    ^self commonClose: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9349
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9350
    "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
  9351
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9352
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9353
_java_net_PlainSocketImpl_socketConnect: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9354
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9355
    <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
  9356
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9357
    |jsock jaddr port sock addr hostName ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9358
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9359
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9360
    jaddr := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9361
    port := nativeContext argAt:2.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9362
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9363
    hostName := jaddr instVarNamed:'hostName'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9364
    hostName notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9365
        hostName := Java as_ST_String:hostName
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9366
    ] ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9367
        addr := jaddr instVarNamed:'address'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9368
        addr notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9369
            hostName := ByteArray new:4.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9370
            hostName at:4 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9371
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9372
            hostName at:3 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9373
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9374
            hostName at:2 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9375
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9376
            hostName at:1 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9377
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9378
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9379
    hostName isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9380
        self halt.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9381
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9382
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9383
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9384
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9385
        FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9386
            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
  9387
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9388
        SocketConnectConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9389
            (PermittedHostConnects isNil
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9390
            or:[(PermittedHostConnects includes:hostName) not]) ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9391
                (self confirm:'connect to host: ' , hostName printString , ' - ok ?')
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9392
                ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9393
                    self throwIOExceptionWithMessage:'connect permission denied'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9394
                ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9395
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9396
                (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
  9397
                ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9398
                    PermittedHostConnects isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9399
                        PermittedHostConnects := Set new
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9400
                    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9401
                    PermittedHostConnects add:hostName.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9402
                ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9403
            ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9404
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9405
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9406
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9407
            ok := sock connectTo:hostName port:port.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9408
            ok ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9409
                self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed'.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9410
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9411
            jsock instVarNamed: #localport put: sock port.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9412
            jsock instVarNamed: #address put: jaddr.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9413
        ] on: Error do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9414
            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
  9415
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9416
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9417
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9418
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9419
    "Created: / 25-01-1998 / 20:02:27 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9420
    "Modified: / 30-12-1998 / 20:10:28 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9421
    "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
  9422
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9423
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9424
_java_net_PlainSocketImpl_socketCreate: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9425
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9426
    <javanative: 'java/net/PlainSocketImpl' name: 'socketCreate(Z)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9427
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9428
    |jsock isStream fd sock fileNo|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9429
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9430
    jsock := nativeContext receiver.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9431
    isStream := (nativeContext argAt:1) == 1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9432
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9433
    fd := jsock instVarNamed:'fd'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9434
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9435
        self throwSocketException: 'null fd object'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9436
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9437
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9438
        self halt:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9439
        self internalError:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9440
        self throwSocketException:'socket already open in socketCreate'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9441
        ^ self.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9442
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9443
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9444
    FileOpenTrace ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9445
        ('JAVA: create socket') infoPrintCR.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9446
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9447
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9448
    isStream ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9449
        sock := self commonOpenStreamUsing:[JavaSocket newTCP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9450
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9451
        sock := self commonOpenStreamUsing:[JavaSocket newUDP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9452
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9453
    sock isNil ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9454
        self throwIOExceptionWithMessage:'socketCreate failed'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9455
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9456
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9457
    (jsock instVarNamed: #serverSocket) notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9458
        "/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
  9459
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9460
            Object primitiveFailureSignal
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9461
        ] on: Object primitiveFailureSignal do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9462
            self throwIOExceptionWithMessage:'cannot set SO_REUSEADDR: ' , ex description.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9463
            ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9464
        ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9465
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9466
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9467
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9468
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9469
    fileNo := self addOpenFile:sock.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9470
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9471
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9472
    jsock finalizationLobby registerChange: jsock
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9473
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9474
    "Created: / 25-01-1998 / 19:59:25 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9475
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9476
    "Modified: / 23-07-2012 / 19:38:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9477
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9478
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9479
_java_net_PlainSocketImpl_socketGetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9480
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9481
    <javanative: 'java/net/PlainSocketImpl' name: 'socketGetOption(ILjava/lang/Object;)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9482
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9483
    | opt arg sock ret |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9484
    opt := nativeContext argAt: 1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9485
    arg := nativeContext argAt: 2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9486
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9487
    sock := self validateFile: nativeContext receiver.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9488
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9489
"/  TCP_NODELAY = 1;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9490
    opt = 1 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9491
        ret := sock getSocketOption: #TCP_NODELAY.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9492
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9493
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9494
"/  SO_BINDADDR = 15;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9495
    opt = 15 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9496
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9497
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9498
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9499
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9500
"/  SO_REUSEADDR = 4;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9501
    opt = 4 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9502
        ret := sock getSocketOption: #SO_REUSEADDR.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9503
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9504
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9505
"/  IP_TOS = 3;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9506
    opt = 3 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9507
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9508
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9509
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9510
"/  SO_LINGER = 128;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9511
    opt = 128 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9512
        ret := sock getSocketOption:#SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9513
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9514
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9515
"/  SO_TIMEOUT = 4102;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9516
    opt = 4102 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9517
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9518
        ^-1 "/Unsupported                   .
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9519
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9520
"/  SO_SNDBUF = 4097;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9521
    opt = 4097 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9522
        ret := sock getSocketOption: #SO_SNDBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9523
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9524
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9525
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9526
"/  SO_RCVBUF = 4098;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9527
    opt = 4098 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9528
        ret := sock getSocketOption: #SO_RCVBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9529
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9530
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9531
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9532
"/  SO_KEEPALIVE = 8;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9533
    opt = 8 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9534
        ret := sock getSocketOption: #SO_KEEPALIVE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9535
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9536
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9537
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9538
"/  SO_OOBINLINE = 4099;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9539
    opt = 4099 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9540
        ret := sock getSocketOption: #SO_OOBINLINE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9541
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9542
    ]
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9543
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9544
    "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
  9545
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9546
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9547
_java_net_PlainSocketImpl_socketListen: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9548
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9549
    <javanative: 'java/net/PlainSocketImpl' name: 'socketListen(I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9550
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9551
        |jSock time sock ok|
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9552
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9553
    jSock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9554
    time := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9555
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9556
    sock := self validateFile:jSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9557
    sock notNil ifTrue:[
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9558
        FileIOTrace ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9559
            ('JAVA: socket listen with timeout ' , time printString) infoPrintCR.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9560
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9561
        ok := sock listenFor:5.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9562
        ok ifFalse:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9563
            self throwIOExceptionWithMessage:'listen failed'.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9564
            ^ self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9565
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9566
        time ~~ 0 ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9567
            sock readWaitWithTimeoutMs:time
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9568
        ]
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9569
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9570
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9571
    "Created: / 04-02-1998 / 15:17:48 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9572
    "Modified: / 30-12-1998 / 20:10:46 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9573
    "Modified: / 17-08-2012 / 15:27:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9574
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9575
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9576
_java_net_PlainSocketImpl_socketSetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9577
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9578
    <javanative: 'java/net/PlainSocketImpl' name: 'socketSetOption(IZLjava/lang/Object;)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9579
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9580
    | opt on val sock o arg1 arg2 |
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9581
    opt := nativeContext argAt: 1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9582
    on  := nativeContext argAt: 2.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9583
    val := nativeContext argAt: 3.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9584
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9585
    sock := self validateFile: nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9586
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9587
"/  TCP_NODELAY = 1;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9588
    opt = 1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9589
        o := #TCP_NODELAY.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9590
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9591
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9592
"/  SO_BINDADDR = 15;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9593
    opt = 15 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9594
        ^self "/Unsupported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9595
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9596
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9597
"/  SO_REUSEADDR = 4;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9598
    opt = 4 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9599
        o := #SO_REUSEADDR.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9600
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9601
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9602
"/  IP_TOS = 3;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9603
    opt = 3 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9604
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9605
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9606
"/  SO_LINGER = 128;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9607
    opt = 128 ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9608
        o := #SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9609
        arg1 := (on == 1).
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9610
        arg2 := val instVarNamed: #value.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9611
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9612
"/  SO_TIMEOUT = 4102;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9613
    opt = 4102 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9614
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9615
                   .
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9616
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9617
"/  SO_SNDBUF = 4097;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9618
    opt = 4097 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9619
        o := #SO_SNDBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9620
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9621
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9622
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9623
"/  SO_RCVBUF = 4098;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9624
    opt = 4098 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9625
        o := #SO_RCVBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9626
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9627
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9628
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9629
"/  SO_KEEPALIVE = 8;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9630
    opt = 8 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9631
        o := #SO_KEEPALIVE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9632
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9633
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9634
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9635
"/  SO_OOBINLINE = 4099;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9636
    opt = 4099 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9637
        o := #SO_OOBINLINE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9638
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9639
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9640
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9641
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9642
        sock setSocketOption: o argument: arg1 argument: arg2.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9643
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9644
        self throwSocketException: 'Error setting socket option: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9645
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9646
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9647
    "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
  9648
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9649
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9650
_java_net_SocketInputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9651
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9652
    <javanative: 'java/net/SocketInputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9653
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9654
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9655
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9656
    "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
  9657
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9658
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9659
_java_net_SocketInputStream_socketRead0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9660
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9661
    <javanative: 'java/net/SocketInputStream' name: 'socketRead0(Ljava/io/FileDescriptor;[BIII)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9662
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9663
    | fdObj data off len timeout sock nread |
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9664
    fdObj   := nativeContext argAt:1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9665
    data    := nativeContext argAt:2.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9666
    off     := nativeContext argAt:3.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9667
    len     := nativeContext argAt:4.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9668
    timeout := nativeContext argAt:5.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9669
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9670
    fdObj isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9671
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9672
        ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9673
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9674
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9675
    sock := self validateFile: fdObj.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9676
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9677
    timeout ~~ 0 ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9678
        [
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9679
            (sock readWaitWithTimeout: timeout) ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9680
                self throwExceptionClassName:'java.net.SocketTimeoutException' withMessage: 'Read timed out'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9681
                ^ -1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9682
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9683
        ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9684
            self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9685
        ]
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9686
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9687
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9688
    [
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9689
        nread := sock nextAvailableBytes: len into: data startingAt: off + 1
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9690
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9691
        self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9692
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9693
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9694
    ^nread
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9695
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9696
    "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
  9697
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9698
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9699
_java_net_SocketOutputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9700
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9701
    <javanative: 'java/net/SocketOutputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9702
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9703
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9704
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9705
    "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
  9706
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9707
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9708
_java_net_SocketOutputStream_socketWrite0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9709
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9710
    <javanative: 'java/net/SocketOutputStream' name: 'socketWrite0(Ljava/io/FileDescriptor;[BII)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9711
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9712
    | fdObj data off len  sock |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9713
    fdObj   := nativeContext argAt:1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9714
    data    := nativeContext argAt:2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9715
    off     := nativeContext argAt:3.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9716
    len     := nativeContext argAt:4.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9717
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9718
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9719
    fdObj isNil ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9720
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9721
        ^ -1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9722
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9723
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9724
    sock := self validateFile: fdObj.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9725
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9726
    [
1136
2a94c9946e7e Fixes in socket read/write
vranyj1
parents: 1135
diff changeset
  9727
        sock nextPutBytes: len from: data startingAt: off + 1.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9728
    ] on: Error do:[:ex|
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9729
        self throwIOExceptionWithMessage: 'Error when writing: ', ex description.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9730
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9731
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9732
    "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
  9733
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9734
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9735
!JavaVM class methodsFor:'native - java.nio'!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9736
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9737
_java_nio_Bits_copyFromByteArray: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9738
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9739
    static native void copyFromByteArray(Object src, long srcPos, long dstAddr,
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9740
                                         long length);
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9741
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9742
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9743
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9744
    <javanative: 'java/nio/Bits' name: 'copyFromByteArray(Ljava/lang/Object;JJJ)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9745
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9746
    | src srcPos dstAddr length |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9747
    src := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9748
    srcPos := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9749
    dstAddr := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9750
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9751
    SimulatedNativeMemory  bcopy: dstAddr length: length from: src offset: srcPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9752
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9753
    "Modified: / 11-07-2012 / 10:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9754
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9755
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9756
_java_nio_Bits_copyToByteArray: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9757
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9758
    static native void copyToByteArray(long srcAddr, Object dst, long dstPos,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9759
                                       long length);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9760
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9761
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9762
    <javanative: 'java/nio/Bits' name: 'copyToByteArray(JLjava/lang/Object;JJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9763
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9764
    | srcAddr dst dstPos length |
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9765
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9766
    srcAddr := nativeContext argAt: 1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9767
    dst := nativeContext argAt: 3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9768
    dstPos := nativeContext argAt: 4.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9769
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9770
    SimulatedNativeMemory bcopy: srcAddr length: length into: dst offset: dstPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9771
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9772
    "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
  9773
! !
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9774
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9775
!JavaVM class methodsFor:'native - java.security'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9776
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9777
_java_security_AccessController_doPrivileged: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9778
    <javanative: 'java/security/AccessController' name: 'doPrivileged'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9779
    "we don't care about permissions, we will just allow this. Now it's guaranteed that called code will not perform access permission checks"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9780
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9781
    | retval |
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9782
    JavaVM privilegedAccessQuery answer: true
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9783
        do: [
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9784
            retval := (aJavaContext argAt: 1) perform: #'run()Ljava/lang/Object;'.
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9785
        ].
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9786
    ^ retval
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9788
    "Created: / 20-10-2010 / 12:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1017
23971b5214d8 removed useless infoPrintCR
hlopkmar
parents: 1016
diff changeset
  9789
    "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
  9790
    "Modified: / 18-10-2011 / 23:28:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9791
    "Modified: / 10-09-2012 / 23:22:59 / m"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9792
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9793
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9794
_java_security_AccessController_getStackAccessControlContext: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9795
    <javanative: 'java/security/AccessController' name: 'getStackAccessControlContext'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9796
    "/ introduced with jdk1.2
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9797
    "/ supposed to do more here ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9798
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9799
    ^nil.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9800
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9801
    "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
  9802
    "Modified: / 09-10-2011 / 23:40:46 / Marcel Hlopko <hlopik@gmail.com>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9803
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9804
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9805
!JavaVM class methodsFor:'native - java.sql'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9806
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9807
_java_sql_DriverManager_getCallerClassLoader: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9808
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9809
    <javanative: 'java/sql/DriverManager' name: 'getCallerClassLoader()Ljava/lang/ClassLoader;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9810
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9811
    ^nativeContext
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9812
        sender sender
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9813
        receiver class theNonMetaclass
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9814
        classLoader
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9815
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9816
    "Modified: / 05-12-2011 / 11:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9817
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9818
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9819
!JavaVM class methodsFor:'native - java.text'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9820
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9821
_java_text_Bidi_nativeBidiChars: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9822
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9823
    <javanative: 'java/text/Bidi' name: 'nativeBidiChars(Ljava/text/Bidi;[CI[BIII)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9824
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9825
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9826
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9827
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9828
!JavaVM class methodsFor:'native - java.util'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9829
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9830
_java_util_ResourceBundle_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9831
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9832
    <javanative: 'java/util/ResourceBundle' name: 'getClassContext'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9833
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9834
    "returns an array filled with the contextChain receivers classes.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9835
     What an ugly, messy interface."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9836
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9837
    |chain con cls jClass|
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9838
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9839
    chain := OrderedCollection new.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9840
    con := thisContext sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9841
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9842
        con notNil
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9843
            and:[con receiver isMethod not or:[con receiver isJavaMethod not]]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9844
    ] whileTrue:[con := con sender.].
1932
e7d723e40812 Bugfix: JavaVM>>_java_util_ResourceBundle_getClassContext:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1928
diff changeset
  9845
    con := con sender sender sender.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9846
    [con notNil] whileTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9847
        (true) "con isJavaContext" ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9848
            cls := con receiver class.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9849
            cls isMeta ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9850
                "/ t'was a static method
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9851
                cls := cls soleInstance
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9852
            ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9853
            cls isJavaClass ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9854
                jClass := self reflection javaClassObjectForClass:cls.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9855
                chain add:jClass.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9856
            ]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9857
        ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9858
        con := con sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9859
    ].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9860
    ^(self classForName:'java.lang.Class') javaArrayClass withAll: chain
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9861
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9862
    "Created: / 05-01-1998 / 02:47:00 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9863
    "Modified: / 24-12-1998 / 00:34:57 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9864
    "Modified: / 28-01-2011 / 15:31:28 / Marcel Hlopko <hlopik@gmail.com>"
1932
e7d723e40812 Bugfix: JavaVM>>_java_util_ResourceBundle_getClassContext:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1928
diff changeset
  9865
    "Modified: / 09-01-2013 / 18:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9866
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9867
1927
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9868
_java_util_TimeZone_getSystemGMTOffsetID: nativeContext
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9869
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9870
    <javanative: 'java/util/TimeZone' name: 'getSystemGMTOffsetID()Ljava/lang/String;'>
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9871
1928
ad4b1740dcea Added new native: _java_util_TimeZone_getSystemGMTOffsetID
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1927
diff changeset
  9872
    ^ Java as_String: 'GMT'
ad4b1740dcea Added new native: _java_util_TimeZone_getSystemGMTOffsetID
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1927
diff changeset
  9873
ad4b1740dcea Added new native: _java_util_TimeZone_getSystemGMTOffsetID
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1927
diff changeset
  9874
    "Modified: / 09-01-2013 / 16:18:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1927
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9875
!
007031278841 Bugfix: value of java.home property.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1926
diff changeset
  9876
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9877
_java_util_TimeZone_getSystemTimeZoneID: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9878
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9879
    <javanative: 'java/util/TimeZone' name: 'getSystemTimeZoneID'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9880
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9881
    "JV@2011-06-25: TODO: finish, returning nil here means GMT"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9882
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9883
    ^ nil
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9884
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9885
    "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
  9886
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9887
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9888
!JavaVM class methodsFor:'native - java.util.concurrent.atomic'!
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9889
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9890
_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8: nativeContext
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9891
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9892
    <javanative: 'java/util/concurrent/atomic/AtomicLong' name: 'VMSupportsCS8'>
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9893
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9894
    "Should be safe - say we don't support lockless updates"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9895
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9896
    ^ 0
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9897
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9898
    "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
  9899
! !
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9900
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9901
!JavaVM class methodsFor:'native - java.util.jar'!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9902
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9903
_java_util_jar_JarFile_getMetaInfEntryNames: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9904
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9905
    <javanative: 'java/util/jar/JarFile' name: 'getMetaInfEntryNames'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9906
    "
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9907
    private native String[] getMetaInfEntryNames();
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9908
    "
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9909
    | zipArchive entries jentries |
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9910
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9911
    zipArchive := ZipCache at: (nativeContext receiver instVarNamed: #jzfile).
1865
96e851c925de Updates in .zip support to reflect changes in ZipArchive.
vranyj1
parents: 1864
diff changeset
  9912
    entries := (zipArchive entries select:[:entry|entry size > 9 and:[entry startsWith: 'META-INF/']]) asArray.
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9913
    jentries := Java java_lang_String javaArrayClass new: entries size.
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9914
    1 to: entries size do:[:i|
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9915
        jentries at: i put: (Java as_String: (entries at: i))
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9916
    ].
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9917
    ^jentries
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9918
1865
96e851c925de Updates in .zip support to reflect changes in ZipArchive.
vranyj1
parents: 1864
diff changeset
  9919
    "Modified: / 10-12-2012 / 05:42:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9920
! !
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9921
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9922
!JavaVM class methodsFor:'native - java.util.zip'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9923
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9924
_java_util_zip_Adler32_updateBytes: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9925
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9926
    <javanative: 'java/util/zip/Adler32' name: 'updateBytes'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9927
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9928
    ^ UnimplementedNativeMethodSignal raise
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9929
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9930
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9931
_java_util_zip_CRC32_update: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9932
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9933
    <javanative: 'java/util/zip/CRC32' name: 'update(II)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9934
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9935
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9936
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9937
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9938
_java_util_zip_CRC32_updateBytes: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9939
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9940
    <javanative: 'java/util/zip/CRC32' name: 'updateBytes(I[BII)I'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9941
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9942
    | crc b off len |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9943
    crc := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9944
    b   := nativeContext argAt: 2.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9945
    off := nativeContext argAt: 3.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9946
    len := nativeContext argAt: 4.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9947
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9948
    ^ZipStream crc32BytesIn:b from:off + 1  to: off + len crc:crc
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9949
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9950
    "Modified: / 05-12-2011 / 00:41:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9951
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9952
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9953
_java_util_zip_Deflater_deflateBytes: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9954
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9955
    <javanative: 'java/util/zip/Deflater' name: 'deflateBytes(J[BII)I'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9956
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9957
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9958
    private native int deflateBytes(long addr, byte[] b, int off, int len);
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9959
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9960
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9961
    | addr b off len deflater ret |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9962
    addr := nativeContext argAt: 1."long takes 2 slots"
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9963
    b := nativeContext argAt: 3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9964
    off := nativeContext argAt: 4.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9965
    len := nativeContext argAt: 5.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9966
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9967
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9968
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9969
    ret := deflater deflate: b offset: off length: len flush: 0 deflater: nativeContext receiver.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9970
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9971
    ^ret.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9972
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9973
    "Modified: / 25-10-2012 / 20:19:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9974
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9975
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9976
_java_util_zip_Deflater_end: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9977
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9978
    <javanative: 'java/util/zip/Deflater' name: 'end(J)V'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9979
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9980
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9981
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9982
    deflater := ZipInflaters at: addr.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9983
    ZipInflaters at: addr put: nil.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9984
    deflater end.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9985
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9986
    "Modified: / 25-10-2012 / 20:24:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9987
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9988
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9989
_java_util_zip_Deflater_getBytesRead: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9990
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9991
    <javanative: 'java/util/zip/Deflater' name: 'getBytesRead(J)J'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9992
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9993
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9994
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9995
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9996
    ^deflater bytesRead.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9997
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9998
    "Modified: / 25-10-2012 / 20:19:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9999
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10000
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10001
_java_util_zip_Deflater_getBytesWritten: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10002
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10003
    <javanative: 'java/util/zip/Deflater' name: 'getBytesWritten(J)J'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10004
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10005
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10006
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10007
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10008
    ^deflater bytesWritten.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10009
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10010
    "Modified: / 25-10-2012 / 20:19:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10011
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10012
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10013
_java_util_zip_Deflater_init: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10014
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10015
    <javanative: 'java/util/zip/Deflater' name: 'init(IIZ)J'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10016
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10017
    | level strategy nowrap deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10018
    level := nativeContext argAt: 1.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10019
    strategy := nativeContext argAt: 2.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10020
    nowrap := nativeContext argAt:3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10021
    deflater := JavaZipSupport deflaterFor: self.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10022
    deflater init: strategy level: level nowrap: nowrap.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10023
    1 to: ZipInflaters size do:[:i|
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10024
        (ZipInflaters at: i) isNil ifTrue:[
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10025
            ZipInflaters at: i put: deflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10026
            ^i
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10027
        ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10028
    ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10029
    ZipInflaters add: deflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10030
    ^ZipInflaters size.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10031
    "/^deflater
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10032
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10033
    "Modified: / 25-10-2012 / 20:25:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10034
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10035
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10036
_java_util_zip_Deflater_initIDs: nativeContext
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 10037
    <javanative: 'java/util/zip/Deflater' name: 'initIDs'>
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10038
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10039
    "Nothing to do here"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
 10040
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
 10041
    "Modified: / 08-12-2011 / 21:11:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 10042
    "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
 10043
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 10044
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10045
_java_util_zip_Deflater_reset: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10046
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10047
    <javanative: 'java/util/zip/Deflater' name: 'reset(J)V'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10048
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10049
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10050
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10051
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10052
    deflater reset.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10053
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10054
    "Modified: / 25-10-2012 / 20:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10055
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10056
1083
vranyj1
parents: 1081
diff changeset
 10057
_java_util_zip_Inflater_end: nativeContext
vranyj1
parents: 1081
diff changeset
 10058
vranyj1
parents: 1081
diff changeset
 10059
    <javanative: 'java/util/zip/Inflater' name: 'end(J)V'>
vranyj1
parents: 1081
diff changeset
 10060
vranyj1
parents: 1081
diff changeset
 10061
     "
vranyj1
parents: 1081
diff changeset
 10062
    private native static void reset(long addr);
vranyj1
parents: 1081
diff changeset
 10063
    "
vranyj1
parents: 1081
diff changeset
 10064
    | addr inflater |
vranyj1
parents: 1081
diff changeset
 10065
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10066
    inflater := ZipInflaters at: addr.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10067
    ZipInflaters at: addr put: nil.
1083
vranyj1
parents: 1081
diff changeset
 10068
    inflater end.
vranyj1
parents: 1081
diff changeset
 10069
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10070
    "Modified: / 25-10-2012 / 20:24:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1083
vranyj1
parents: 1081
diff changeset
 10071
!
vranyj1
parents: 1081
diff changeset
 10072
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10073
_java_util_zip_Inflater_getBytesRead: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10074
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10075
    <javanative: 'java/util/zip/Inflater' name: 'getBytesRead(J)J'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10076
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10077
    | addr inflater |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10078
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10079
    inflater := ZipInflaters at: addr.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10080
    ^inflater bytesRead.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10081
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10082
    "Modified: / 25-10-2012 / 20:20:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10083
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10084
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10085
_java_util_zip_Inflater_getBytesWritten: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10086
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10087
    <javanative: 'java/util/zip/Inflater' name: 'getBytesWritten'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10088
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10089
    | addr inflater |
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10090
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10091
    inflater := ZipInflaters at: addr.
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10092
    ^inflater bytesWritten.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10093
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10094
    "Modified: / 25-10-2012 / 20:20:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10095
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10096
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10097
_java_util_zip_Inflater_inflateBytes: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10099
    <javanative: 'java/util/zip/Inflater' name: 'inflateBytes'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10100
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10101
    private native int inflateBytes(long addr, byte[] b, int off, int len)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10102
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10103
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10104
    | addr b off len inflater ret |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10105
    addr := nativeContext argAt: 1."long takes 2 slots"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10106
    b := nativeContext argAt: 3.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10107
    off := nativeContext argAt: 4.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10108
    len := nativeContext argAt: 5.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10109
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10110
    inflater := ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10111
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10112
    ret := inflater inflate: b offset: off length: len inflater: nativeContext receiver.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10113
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10114
    ^ret.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10115
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10116
    "Created: / 30-04-2011 / 23:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10117
    "Modified: / 25-10-2012 / 20:20:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10118
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10119
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10120
_java_util_zip_Inflater_init: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10122
    <javanative: 'java/util/zip/Inflater' name: 'init'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10123
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10124
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10125
    | nowrap inflater |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10126
    nowrap := nativeContext argAt:1.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10127
    inflater := JavaZipSupport inflaterFor: self.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10128
    inflater init: nowrap.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10129
    1 to: ZipInflaters size do:[:i|
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10130
        (ZipInflaters at: i) isNil ifTrue:[
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10131
            ZipInflaters at: i put: inflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10132
            ^i
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10133
        ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10134
    ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10135
    ZipInflaters add: inflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10136
    ^ ZipInflaters size.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10138
    "Created: / 01-02-1998 / 20:14:01 / cg"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10139
    "Modified: / 25-10-2012 / 20:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10140
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10141
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10142
_java_util_zip_Inflater_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10144
    <javanative: 'java/util/zip/Inflater' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10145
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10146
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10147
    "Nothing to do, used only to register natives"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10149
    "Created: / 30-04-2011 / 21:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10150
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10151
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10152
_java_util_zip_Inflater_reset: nativeContext
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10153
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10154
    <javanative: 'java/util/zip/Inflater' name: 'reset'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10155
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10156
    private native static void reset(long addr);
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10157
    "
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10158
    | addr inflater |
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10159
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10160
    inflater := ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10161
    inflater reset.
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10162
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10163
    "Created: / 01-02-1998 / 20:14:13 / cg"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10164
    "Modified: / 25-10-2012 / 20:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10165
!
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10166
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10167
_java_util_zip_ZipEntry_initFields: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10169
    <javanative: 'java/util/zip/ZipEntry' name: 'initFields'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10171
        | entry jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10173
    entry := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10174
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10175
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10176
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10177
    entry
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10178
        instVarNamed: #name     put: (Java as_String: zmember fileName);
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10179
        instVarNamed: #time     put: -1"zmember lastModFileTime";
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10180
        instVarNamed: #crc      put: zmember crc32;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10181
        instVarNamed: #size     put: zmember uncompressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10182
        instVarNamed: #csize    put: zmember compressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10183
        instVarNamed: #method   put: zmember compressionMethod;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10184
        instVarNamed: #extra    put: zmember extraField;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10185
        instVarNamed: #comment  put: (zmember fileComment ifNotNil:[Java as_String: zmember fileComment]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10186
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10187
    "Created: / 01-04-2011 / 13:04:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10188
    "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
 10189
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10190
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10191
_java_util_zip_ZipEntry_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10193
    <javanative: 'java/util/zip/ZipEntry' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10194
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10195
        "hopefully nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10196
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10197
    "Created: / 01-04-2011 / 13:02:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10198
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10199
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10200
_java_util_zip_ZipFile_close: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10201
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10202
    <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
 10203
1083
vranyj1
parents: 1081
diff changeset
 10204
    | jzfile zar |
vranyj1
parents: 1081
diff changeset
 10205
    jzfile := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
 10206
    zar := ZipCache at: jzfile.
vranyj1
parents: 1081
diff changeset
 10207
    zar close.
vranyj1
parents: 1081
diff changeset
 10208
    ZipCache at: jzfile put: nil.
vranyj1
parents: 1081
diff changeset
 10209
vranyj1
parents: 1081
diff changeset
 10210
    "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
 10211
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10212
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10213
_java_util_zip_ZipFile_freeEntry: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10214
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10215
    <javanative: 'java/util/zip/ZipFile' name: 'freeEntry'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10217
    | zipArchiveIndex  zipEntryIndex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10218
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10219
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10220
    zipArchiveIndex := nativeContext at: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10221
    zipEntryIndex := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10222
    zipEntryIndex = 0 ifFalse: [ ZipEntryCache at: zipEntryIndex put: nil ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10223
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10224
    "Modified: / 01-05-2011 / 13:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10225
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10227
_java_util_zip_ZipFile_getCSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10229
    <javanative: 'java/util/zip/ZipFile' name: 'getCSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10230
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10231
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10232
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10233
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10234
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10236
    ^zmember compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10238
    "Created: / 30-04-2011 / 21:50:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10239
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10240
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10241
_java_util_zip_ZipFile_getEntry: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10242
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10243
    <javanative: 'java/util/zip/ZipFile' name: 'getEntry'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10244
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
 10245
    | zipArchive  filename  member |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10246
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10247
    zipArchive := ZipCache at: (nativeContext argAt: 1).
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10248
    filename := Java as_ST_String: (nativeContext argAt: 3).
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10249
    member := (zipArchive findMemberAllowForMissingTrailingSlash: filename).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10250
    member isNil ifTrue: [
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10251
        ^ 0
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10252
    ] ifFalse: [
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10253
        ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10254
            ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10255
            ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10256
        ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10257
    ]
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10258
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10259
    "Created: / 27-03-2011 / 16:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10260
    "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
 10261
    "Modified: / 18-08-2011 / 19:44:56 / jv"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10262
    "Modified: / 20-07-2012 / 19:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10263
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10264
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10265
_java_util_zip_ZipFile_getMethod: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10266
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10267
    <javanative: 'java/util/zip/ZipFile' name: 'getMethod'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10268
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10269
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10270
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10271
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10272
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10274
    ^zmember compressionMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10275
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10276
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10277
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10278
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10279
_java_util_zip_ZipFile_getNextEntry: nativeContext
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10280
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10281
    <javanative: 'java/util/zip/ZipFile' name: 'getNextEntry(JI)J'>
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10282
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10283
    | zipArchive  index i |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10284
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10285
    zipArchive := ZipCache at: (nativeContext at: 1).
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10286
    index := nativeContext at: 3.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10287
    i := 0.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10288
    zipArchive zipMembersDo:[:member |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10289
        index == i ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10290
            ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10291
                ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10292
                ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10293
            ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10294
        ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10295
        i := i + 1.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10296
    ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10297
    ^0
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10298
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10299
    "Modified: / 05-12-2011 / 11:19:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10300
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10301
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10302
_java_util_zip_ZipFile_getSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10304
    <javanative: 'java/util/zip/ZipFile' name: 'getSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10305
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10306
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10307
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10308
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10309
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10310
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10311
    ^zmember uncompressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10313
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10314
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10315
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10316
_java_util_zip_ZipFile_getTotal: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10317
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10318
    <javanative: 'java/util/zip/ZipFile' name: 'getTotal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10319
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10320
    | zar|
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10321
    zar := ZipCache at: (nativeContext argAt: 1).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10322
    ^ zar entries size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10323
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10324
    "Modified: / 23-07-2012 / 23:35:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10325
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10327
_java_util_zip_ZipFile_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10329
    <javanative: 'java/util/zip/ZipFile' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10330
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10331
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10332
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10334
    "Created: / 23-03-2011 / 19:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10335
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10337
_java_util_zip_ZipFile_open: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10339
    <javanative: 'java/util/zip/ZipFile' name: 'open'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10341
    | path  mode  lastModTime  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10342
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10343
    path := Java as_ST_String: (nativeContext at: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10344
    "/(path endsWith:'.jar') ifFalse:[self breakPoint: #jv].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10345
    mode := nativeContext at: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10346
    lastModTime := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10347
    result := path asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10348
    result ifNil: [ JavaVM throwZipException ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10349
    ^[
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10350
        | i zar |
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10351
        zar := ZipArchive readingFrom: result readStream.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10352
        i := ZipCache indexOf: nil.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10353
        i ~~ 0 ifTrue:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10354
            ZipCache at: i put: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10355
            i
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10356
        ] ifFalse:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10357
            ZipCache add: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10358
            ZipCache size.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10359
        ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10360
    ] on: Error do:[:ex|
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10361
        self throwZipException: 'Cannot open zip file: ', ex description
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10362
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10363
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10364
    "Modified: / 01-04-2011 / 15:35:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10365
    "Modified: / 20-07-2012 / 21:48:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10366
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10367
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10368
_java_util_zip_ZipFile_read: aJavaContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10369
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10370
    <javanative: 'java/util/zip/ZipFile' name: 'read'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10371
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10372
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10373
    | jzfile jzentry pos b off len zar zmember bytesToRead |
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10374
    jzfile := aJavaContext argAt: 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10375
    jzentry := aJavaContext argAt: 3. "first arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10376
    pos := aJavaContext argAt: 5. "jzentry arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10377
    b := aJavaContext argAt: 7.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10378
    off := aJavaContext argAt: 8.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10379
    len := aJavaContext argAt: 9.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10380
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10381
    zar := ZipCache at: jzfile.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10382
    zmember := ZipEntryCache at: jzentry.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10383
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10384
    bytesToRead := len min: (zmember compressedSize - pos).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10385
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10386
    ^zar nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off + 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10387
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10388
    "Created: / 30-04-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10389
    "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
 10390
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10391
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10392
!JavaVM class methodsFor:'native - old-style'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10394
_AccessController_beginPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10395
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10397
    "Created: / 27.1.1998 / 18:18:11 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10398
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10400
_AccessController_endPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10401
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10402
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10403
    "Created: / 27.1.1998 / 18:18:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10404
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10405
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10406
_AudioDevice_audioClose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10407
    |device fd stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10408
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10409
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10410
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10411
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10412
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10413
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10414
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10415
		stream close.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10416
		device instVarNamed:'dev' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10417
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10418
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10419
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10420
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10421
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10422
    "Modified: / 13.1.1998 / 18:08:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10423
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10425
_AudioDevice_audioOpen:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10426
    |f stream fileNo|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10428
    NoAudio ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10429
        Transcript showCR:'JAVA: audio disabled'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10430
        ^ -1
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10431
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10432
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10433
    Stream streamErrorSignal handle:[:ex |
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10434
        Stream streamErrorSignal handle:[:ex |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10435
            stream := nil.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10436
            ex return.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10437
        ] do:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10438
            stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10439
        ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10440
    ] do:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10441
        stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10442
        stream notNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10443
            stream setSampleRate:8000.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10444
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10445
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10446
    stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10447
"/        ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10448
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10449
        f := '/dev/audio' asFilename.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10450
        f exists ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10451
            Transcript showCR:'JAVA: neither SoundStream nor /dev/audio available'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10452
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10453
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10454
        stream := self commonOpenStreamUsing: [f readWriteStream].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10455
        stream isNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10456
            Transcript showCR:'JAVA: /dev/audio exists, but cannot be opened'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10457
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10458
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10459
        fileNo := self addOpenFile:stream.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10460
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10462
    fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10463
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10464
    FileOpenTrace ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10465
        ('JAVA: opened audioDevice as FD ' , fileNo printString) infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10466
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10467
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10468
    ^ fileNo
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10469
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10470
    "Created: / 10-01-1998 / 15:45:30 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10471
    "Modified: / 14-10-1998 / 15:20:52 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10472
    "Modified: / 23-07-2012 / 19:36:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10473
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10475
_AudioDevice_audioWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10476
    |device fd stream bytes count|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10477
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10478
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10479
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10480
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10481
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10482
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10483
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10484
		bytes := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10485
		count := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10486
		stream nextPutBytes:count from:bytes startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10487
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10488
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10489
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10490
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10491
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10492
    "Modified: / 13.1.1998 / 18:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10493
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10494
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10495
_BigInteger_plumbInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10496
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10497
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10498
    "Modified: / 12.11.1998 / 19:23:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10499
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10500
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10501
_ColorModel_deletepData:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10502
    "/ void deletepData ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10503
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10504
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10505
    "Created: / 12.11.1998 / 19:22:05 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10506
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10507
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10508
_ColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10509
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10511
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10512
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10514
_Constructor_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10515
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10517
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10519
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10520
    "Created: / 27.1.2000 / 02:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10521
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10522
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10523
_Constructor_newInstance:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10524
    "/ java.lang.Object newInstance (java.lang.Object[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10526
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10528
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10529
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10531
_Field_get:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10532
    "/ java.lang.Object get (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10533
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10534
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10536
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10537
    "Created: / 27.1.2000 / 03:04:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10538
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10540
_Field_getBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10541
    "/ boolean getBoolean (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10542
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10543
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10544
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10545
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10546
    "Created: / 27.1.2000 / 03:05:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10547
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10549
_Field_getByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10550
    "/ byte getByte (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10551
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10552
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10553
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10554
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10555
    "Created: / 27.1.2000 / 03:05:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10556
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10557
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10558
_Field_getChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10559
    "/ char getChar (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10560
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10561
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10562
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10563
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10564
    "Created: / 27.1.2000 / 03:03:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10565
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10566
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10567
_Field_getDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10568
    "/ double getDouble (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10570
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10571
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10572
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10573
    "Created: / 27.1.2000 / 03:07:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10574
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10575
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10576
_Field_getFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10577
    "/ float getFloat (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10578
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10579
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10580
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10581
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10582
    "Created: / 27.1.2000 / 03:05:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10583
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10584
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10585
_Field_getInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10586
    "/ int getInt (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10588
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10590
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10591
    "Created: / 27.1.2000 / 03:04:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10592
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10594
_Field_getLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10595
    "/ long getLong (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10596
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10597
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10598
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10599
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10600
    "Created: / 27.1.2000 / 03:05:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10601
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10602
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10603
_Field_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10604
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10605
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10606
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10608
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10609
    "Created: / 27.1.2000 / 03:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10610
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10612
_Field_getShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10613
    "/ unsigned short getShort (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10615
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10616
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10617
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10618
    "Created: / 27.1.2000 / 03:07:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10619
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10621
_Field_set:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10622
    "/ void set (java.lang.Object java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10623
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10624
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10625
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10626
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10627
    "Created: / 27.1.2000 / 03:04:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10628
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10630
_Field_setBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10631
    "/ void setBoolean (java.lang.Object boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10632
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10633
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10634
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10635
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10636
    "Created: / 27.1.2000 / 03:06:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10637
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10639
_Field_setByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10640
    "/ void setByte (java.lang.Object byte)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10642
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10643
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10644
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10645
    "Created: / 27.1.2000 / 03:06:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10646
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10648
_Field_setChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10649
    "/ void setChar (java.lang.Object char)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10650
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10651
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10652
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10653
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10654
    "Created: / 27.1.2000 / 03:03:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10655
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10656
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10657
_Field_setDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10658
    "/ void setDouble (java.lang.Object double)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10659
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10660
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10661
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10662
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10663
    "Created: / 27.1.2000 / 03:04:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10664
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10665
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10666
_Field_setFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10667
    "/ void setFloat (java.lang.Object float)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10669
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10670
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10671
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10672
    "Created: / 27.1.2000 / 03:06:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10673
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10675
_Field_setInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10676
    "/ void setInt (java.lang.Object int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10677
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10678
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10679
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10680
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10681
    "Created: / 27.1.2000 / 03:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10682
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10683
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10684
_Field_setLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10685
    "/ void setLong (java.lang.Object long)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10687
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10688
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10689
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10690
    "Created: / 27.1.2000 / 03:06:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10691
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10693
_Field_setShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10694
    "/ void setShort (java.lang.Object unsigned short)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10696
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10697
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10698
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10699
    "Created: / 27.1.2000 / 03:03:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10700
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10702
_FileDescriptor_initSystemFD:nativeContext
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10703
    |descriptor fileNo myStream|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10705
    descriptor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10706
    fileNo := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10708
    fileNo == 0 ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10709
        myStream := Stdin
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10710
    ] ifFalse:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10711
        fileNo == 1 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10712
           myStream := JavaConsoleStream ? Stdout
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10713
        ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10714
            fileNo == 2 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10715
                myStream := JavaConsoleStream ? Stderr
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10716
            ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10717
                self halt:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10718
                self internalError:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10719
            ]
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10720
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10721
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10723
    self setOpenFile:myStream at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10725
    descriptor instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10726
    ^ descriptor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10727
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10728
    "Modified: / 27-01-1998 / 18:15:28 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10729
    "Modified (format): / 28-07-2012 / 02:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10730
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10732
_FileDescriptor_valid:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10733
    "/ boolean valid ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10734
    |descriptor fileNo stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10736
    descriptor := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10737
    fileNo := descriptor instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10738
    stream := self getOpenFileAt:fileNo.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10739
    stream isNil ifTrue:[^ 0]. "/ FALSE
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10740
    stream isOpen ifFalse:[^ 0].  "/ FALSE
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10742
    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10744
    "Modified: / 11.12.1998 / 13:02:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10745
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10747
_FileInputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10748
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10750
    "Created: / 4.1.1998 / 17:45:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10751
    "Modified: / 4.2.1998 / 15:20:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10754
_FileOutputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10755
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10757
    "Created: / 13.1.1998 / 09:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10758
    "Modified: / 4.2.1998 / 15:20:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10759
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10761
_File_canRead0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10762
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10764
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10765
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10766
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10767
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10769
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10770
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10771
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10773
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10774
	(f := path asFilename) isReadable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10775
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10776
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10777
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10778
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10780
    "Created: / 4.1.1998 / 18:09:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10781
    "Modified: / 27.1.1999 / 18:57:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10782
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10784
_File_canWrite0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10785
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10787
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10788
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10789
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10790
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10791
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10792
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10793
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10794
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10795
	(f := path asFilename) isWritable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10796
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10797
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10798
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10799
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10801
    "Created: / 4.2.1998 / 00:19:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10802
    "Modified: / 27.1.1999 / 18:57:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10803
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10804
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10805
_File_canonPath:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10806
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10807
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10808
    |jPath path realPath|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10809
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10810
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10811
    jPath isNil ifTrue:[^ jPath].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10812
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10813
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10814
    realPath := path asFilename pathName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10815
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10816
    ^ Java as_String:realPath
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10817
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10818
    "Created: / 27.1.1998 / 18:35:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10819
    "Modified: / 27.1.1998 / 21:36:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10820
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10821
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10822
_File_delete0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10823
    "/ boolean delete0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10824
    |oldFile oldPath oldF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10826
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10827
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10828
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10830
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10831
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10833
    oldF exists ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10834
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10835
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10837
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Delete of ''' , oldPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10838
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10839
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10840
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10842
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10843
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10844
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10845
	oldF delete.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10846
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10847
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10848
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10850
    "Modified: / 30.12.1998 / 20:15:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10851
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10853
_File_exists0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10854
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10856
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10857
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10858
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10859
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10860
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10861
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10862
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10863
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10864
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10865
	    ^ 1 "TRUE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10866
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10867
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10868
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10869
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10870
    "Created: / 5.1.1998 / 02:07:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10871
    "Modified: / 27.1.1999 / 18:57:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10872
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10873
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10874
_File_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10875
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10876
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10877
    "Created: / 27.1.1998 / 18:25:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10878
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10879
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10880
_File_isAbsolute:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10881
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10883
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10884
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10885
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10886
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10887
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10888
	(f := path asFilename) isAbsolute ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10889
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10890
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10891
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10892
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10894
    "Created: / 11.1.1998 / 09:54:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10895
    "Modified: / 20.10.1998 / 20:59:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10898
_File_isDirectory0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10899
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10901
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10902
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10903
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10904
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10905
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10906
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10907
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10908
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10909
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10910
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10911
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10912
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10913
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10915
    "Created: / 7.1.1998 / 10:31:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10916
    "Modified: / 27.1.1999 / 18:58:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10917
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10918
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10919
_File_isFile0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10920
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10922
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10923
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10924
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10925
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10926
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10927
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10928
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10929
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10930
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10931
	    f isDirectory ifFalse:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10932
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10933
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10934
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10936
    "Created: / 11.1.1998 / 11:40:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10937
    "Modified: / 27.1.1999 / 18:58:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10938
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10940
_File_lastModified0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10941
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10942
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10943
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10944
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10945
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10946
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10947
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10948
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10949
	    ^ f modificationTime getMilliseconds.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10950
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10951
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10952
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10954
    "Created: / 4.2.1998 / 16:50:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10955
    "Modified: / 20.10.1998 / 21:00:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10956
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10958
_File_length0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10959
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10960
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10961
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10962
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10963
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10964
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10965
	    thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10966
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10967
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10968
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10969
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10970
	    ^ f fileSize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10971
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10972
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10973
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10975
    "Created: / 7.1.1998 / 12:18:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10976
    "Modified: / 27.1.1999 / 18:57:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10977
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10979
_File_list0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10980
    |file path f files|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10982
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10983
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10984
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10985
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10986
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10987
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10988
	    f isDirectory ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10989
		files := f directoryContents asArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10990
		files := files collect:[:nm | Java as_String:nm].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10991
		^ files
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10992
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10993
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10994
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10995
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10996
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10997
    "Created: / 14.1.1998 / 21:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10998
    "Modified: / 20.10.1998 / 21:00:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10999
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11000
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11001
_File_mkdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11002
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11003
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11004
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11005
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11006
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11007
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11008
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11009
	f := path asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11010
	(f exists and:[f isDirectory]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11011
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11012
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11014
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11015
	    (self confirm:('JAVA Security check\\Create directory ''' , path , '''.\Grant permission ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11016
	    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11017
		^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11018
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11019
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11020
	OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11021
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11022
	] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11023
	    f makeDirectory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11024
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11025
	f  exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11026
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11027
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11028
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11029
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11030
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11031
    "Created: / 4.2.1998 / 00:19:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11032
    "Modified: / 4.12.1998 / 14:04:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11035
_File_renameTo0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11036
    "/ void renameTo0 (java.io.File)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11038
    |oldFile newFile oldPath newPath oldF newF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11040
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11041
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11042
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11044
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11045
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11047
    newFile := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11048
    newPath := newFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11049
    newPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11050
    newPath := Java as_ST_String:newPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11052
    newF := newPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11054
    (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
 11055
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11056
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11057
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11058
    oldF directory pathName ~= newF directory pathName ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11059
	(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
 11060
	ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11061
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11062
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11063
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11065
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11066
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11067
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11068
	oldF renameTo:newF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11069
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11070
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11071
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11073
    "Modified: / 3.12.1998 / 21:01:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11074
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11076
_File_rmdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11077
    "/ boolean rmdir0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11078
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11080
    "Modified: / 12.11.1998 / 19:01:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11081
    "Created: / 12.11.1998 / 19:03:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11082
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11084
_Float_floatToIntBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11085
    |f i|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11087
    f := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11089
    UninterpretedBytes isBigEndian ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11090
	i := f basicAt:4.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11091
	i := i bitOr:((f basicAt:3) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11092
	i := i bitOr:((f basicAt:2) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11093
	i := i bitOr:((f basicAt:1) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11094
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11095
	i := f basicAt:1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11096
	i := i bitOr:((f basicAt:2) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11097
	i := i bitOr:((f basicAt:3) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11098
	i := i bitOr:((f basicAt:4) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11099
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11101
    ^ i.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11103
    "Created: / 4.1.1998 / 01:25:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11104
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11105
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11106
_FontDescriptor_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11107
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11108
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11109
    "Created: / 28.1.1998 / 22:30:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11110
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11111
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11112
_Font_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11113
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11115
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11116
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11117
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11118
_GifImageDecoder_parseImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11119
    |decoder width height bool1 depth subHdrBytes dstBytes i1 i2 colorModel
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11120
     stream byte compressedData compressedSize index count data
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11121
     leftOffs topOffs codeLen flags pixelStore clrModel t buffSize
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11122
     countGot countGot2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11124
    decoder := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11126
    i1 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11127
    i2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11128
    width := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11129
    height := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11130
    bool1 := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11131
    depth := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11132
    subHdrBytes := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11133
    dstBytes := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11134
    colorModel := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11135
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11136
    leftOffs := subHdrBytes wordAt:1 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11137
    topOffs := subHdrBytes wordAt:3 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11138
    width := subHdrBytes wordAt:5 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11139
    height := subHdrBytes wordAt:7 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11140
    flags := subHdrBytes at:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11141
    codeLen := subHdrBytes at:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11143
    stream := decoder instVarNamed:'input'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11144
    pixelStore := decoder instVarNamed:'store'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11145
    pixelStore isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11146
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11147
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11149
    buffSize := (width * height // 2) max:4096.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11150
    compressedData := ByteArray uninitializedNew:buffSize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11151
    "get compressed data"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11152
    index := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11153
    count := stream perform:#'read()I'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11155
    [count notNil and:[count > 0]] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11156
	(index + count) > buffSize ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11157
	    t := ByteArray uninitializedNew:(buffSize * 2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11158
	    t replaceFrom:1 to:buffSize with:compressedData startingAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11159
	    compressedData := t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11160
	    buffSize := buffSize * 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11161
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11162
	[count ~~ 0] whileTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11163
	    countGot := stream
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11164
			perform:#'read([BII)I'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11165
			with:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11166
			with:index-1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11167
			with:count.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11169
	    countGot > 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11170
		count := count - countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11171
		index := index + countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11172
	    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11173
		count := -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11174
	    ]
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
	count >= 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11178
	    count := stream perform:#read.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11179
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11180
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11181
    compressedSize := index - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11182
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11183
    data := pixelStore perform:#'allocateLines(I)Ljava/lang/Object;' with:height.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11184
    (data isMemberOf:ByteArray) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11185
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11186
	^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11187
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11188
"/    'GIFReader: decompressing ...' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11190
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11191
    GIFReader
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11192
	decompressGIFFrom:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11193
	count:compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11194
	into:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11195
	startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11196
	codeLen:(codeLen + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11198
    clrModel := pixelStore instVarNamed:'colormodel'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11199
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11200
    pixelStore
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11201
	perform:#'setPixels(IIII[BII)Z'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11202
	withArguments:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11203
	    (Array
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11204
		with:0        "/ x
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11205
		with:0        "/ y
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11206
		with:width    "/ w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11207
		with:height   "/ h
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11208
		with:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11209
		with:0        "/ offs
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11210
		with:width).   "/ scanSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11211
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11212
    pixelStore  perform:#'imageComplete()V'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11213
"/        perform:#'imageComplete(I)V'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11214
"/        with:((Java at:'java.awt.image.ImageConsumer') instVarNamed:'STATICIMAGEDONE').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11215
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11216
"/ self internalError:'breakPoint'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11217
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11218
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11219
    "Modified: / 10.4.1998 / 14:31:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11220
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11222
_ImageRepresentation_disposeImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11223
    |imgRep img|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11225
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11227
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11228
    (img notNil and:[img ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11229
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11230
	    ImageStretchCache removeKey:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11231
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11232
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11234
    imgRep instVarNamed:'pData' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11235
"/    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11237
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11238
    "Modified: / 17.1.1998 / 13:26:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11239
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11241
_ImageRepresentation_finish:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11242
    |imgRep bool|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11244
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11245
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11246
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11247
"/    'JAVA: ImageRepresentation_finish ignored for now' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11249
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11251
    "Created: / 8.1.1998 / 00:11:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11252
    "Modified: / 6.2.1998 / 02:12:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11253
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11255
_ImageRepresentation_imageDraw:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11256
    |imgRep x y img deviceImage jGraphics gc clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11258
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11259
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11260
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11261
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11262
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11263
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11264
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11265
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11266
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11267
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11268
    x := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11269
    y := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11270
    clr := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11271
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11272
    deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11273
    deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11274
	imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11275
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11276
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11277
    deviceImage displayOn:gc x:x y:y.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11278
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11279
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11280
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11281
    "Modified: / 25.11.1998 / 15:36:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11282
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11283
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11284
_ImageRepresentation_imageStretch:nativeContext
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11285
    |imgRep x1 y1 x2 y2 srcX1 srcY1 w h
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11286
     img deviceImage jGraphics gc clr stretchWidth stretchHeight|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11288
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11289
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11290
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11291
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11292
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11293
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11295
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11296
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11297
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11299
    x1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11300
    y1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11301
    x2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11302
    y2:= nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11303
    srcX1 := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11304
    srcY1 := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11305
    w := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11306
    h := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11307
    clr := nativeContext argAt:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11308
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11309
    (srcX1 ~~ 0 or:[srcY1 ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11310
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11311
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11312
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11313
    (w ~~ img width or:[h ~~ img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11314
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11315
	^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11316
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11317
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11318
    "/ TODO: remember magnified images somewhere for a while,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11319
    "/ to avoid repeated action ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11321
    stretchWidth := (x2-x1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11322
    stretchHeight := (y2-y1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11324
    (stretchWidth == img width
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11325
    and:[stretchHeight == img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11326
	deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11327
	deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11328
	    imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11329
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11330
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11331
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11332
	    deviceImage := ImageStretchCache at:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11333
	].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11334
	(deviceImage isNil
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11335
	or:[deviceImage width ~~ stretchWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11336
	or:[deviceImage height ~~ stretchHeight]]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11337
	    deviceImage := (img magnifiedTo:stretchWidth@stretchHeight) onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11338
	    ImageStretchCache isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11339
		ImageStretchCache := WeakIdentityDictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11340
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11341
	    ImageStretchCache at:img put:deviceImage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11342
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11343
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11344
    deviceImage displayOn:gc x:x1 y:y1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11346
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11347
    "Modified: / 15.1.1998 / 13:14:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11348
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11350
_ImageRepresentation_offscreenInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11351
    |imgRep jclr w h form screenDevice|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11353
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11354
    jclr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11355
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11356
    w := imgRep instVarNamed:'width'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11357
    h := imgRep instVarNamed:'height'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11359
    screenDevice := Screen current.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11360
    form := Form width:w height:h depth:(screenDevice depth) on:screenDevice.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11361
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11362
    imgRep instVarNamed:'pData' put:form.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11363
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11365
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11366
    "Modified: / 17.1.1998 / 12:36:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11367
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11369
_ImageRepresentation_setBytePixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11370
    |imgRep x y w h clrModel bytes offs i2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11371
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11372
     scanLineWidth nBytes srcIdx dstIdx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11374
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11375
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11376
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11377
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11378
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11379
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11380
    bytes := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11381
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11382
    scanLineWidth := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11383
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11384
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11385
    (clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11386
	rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11387
	cmap := Array new:rgbMap size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11388
	rgbMap
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11389
	    keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11390
		cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11391
	    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11392
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11394
    opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11395
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11396
	transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11397
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11398
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11399
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11400
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11401
"/        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11402
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11404
    (offs ~~ 0 or:[scanLineWidth ~~ w]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11405
	nBytes := ByteArray new:w*h.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11406
	srcIdx := offs+1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11407
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11408
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11409
	    nBytes replaceFrom:dstIdx to:(dstIdx+w-1) with:bytes startingAt:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11410
	    srcIdx := srcIdx + scanLineWidth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11411
	    dstIdx := dstIdx + w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11412
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11413
	bytes := nBytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11414
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11415
    img := Image width:w height:h depth:depth fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11416
    cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11417
	img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11418
	img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11419
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11420
    opaque ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11421
	img mask:(ImageReader
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11422
		    buildMaskFromColor:transparentColorIndex
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11423
		    for:bytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11424
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11425
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11426
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11428
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11429
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11431
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11432
    "Modified: / 21.10.1998 / 00:35:45 / cg"
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
_ImageRepresentation_setIntPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11436
    |imgRep x y w h clrModel ints offs scanLineWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11437
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11438
     bytes srcIdx dstIdx val red green blue
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11439
     redMask greenMask blueMask redShift greenShift blueShift|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11441
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11442
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11443
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11444
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11445
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11446
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11447
    ints := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11448
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11449
    scanLineWidth := nativeContext argAt:8.  "/ scanLineWidth ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11450
    opaque := false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11451
offs ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11452
 self halt
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
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11456
    clrModel class == (Java at:'java.awt.image.DirectColorModel') ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11457
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11458
	(clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11459
	    rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11460
	    cmap := Array new:rgbMap size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11461
	    rgbMap
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11462
		keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11463
		    cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11464
		].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11465
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11466
	opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11467
	opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11468
	    transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11469
	].
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
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11473
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11474
"/        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11475
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11476
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11477
    depth == 32 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11478
	"/ temporary kludge - ony use 24 bits/pixel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11479
	bytes := ByteArray new:w*h*3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11480
	srcIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11481
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11482
	redMask := clrModel instVarNamed:'red_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11483
	greenMask := clrModel instVarNamed:'green_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11484
	blueMask := clrModel instVarNamed:'blue_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11485
	redShift := (clrModel instVarNamed:'red_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11486
	greenShift := (clrModel instVarNamed:'green_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11487
	blueShift := (clrModel instVarNamed:'blue_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11488
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11489
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11490
	    1 to:w do:[:x |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11491
		val := ints at:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11492
		red := (val bitAnd:redMask) bitShift:redShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11493
		green := (val bitAnd:greenMask) bitShift:greenShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11494
		blue := (val bitAnd:blueMask) bitShift:blueShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11495
		bytes at:dstIdx put:red.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11496
		bytes at:dstIdx+1 put:green.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11497
		bytes at:dstIdx+2 put:blue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11498
		dstIdx := dstIdx + 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11499
		srcIdx := srcIdx + 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11500
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11501
	    srcIdx := srcIdx + (scanLineWidth - w).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11502
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11503
	img := Depth24Image width:w height:h depth:24 fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11504
	img photometric:#rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11505
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11506
	scanLineWidth ~~ w ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11507
	    self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11508
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11509
	img := Image width:w height:h depth:depth fromArray:ints.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11510
	cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11511
	    img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11512
	    img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11513
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11514
	    img photometric:#rgb
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
    opaque ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11518
	img mask:(ImageReader
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11519
		    buildMaskFromColor:transparentColorIndex
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11520
		    for:ints
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11521
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11522
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11523
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11524
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11525
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11526
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11528
    "Created: / 1.2.1998 / 17:38:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11529
    "Modified: / 21.10.1998 / 00:35:37 / 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
_InetAddressImpl_getHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11533
    "/ java.lang.String getHostByAddr (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11534
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11536
    "Created: / 12.11.1998 / 19:08:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11537
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11539
_InetAddressImpl_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11540
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11541
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11542
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11543
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11544
    "Created: / 5.1.1998 / 02:05:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11545
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11546
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11547
_InetAddressImpl_getLocalHostName:nativeContext
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
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11551
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11552
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11553
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11554
    ^ (Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11556
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11557
    "Created: / 5.1.1998 / 02:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11558
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11559
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11560
_InetAddressImpl_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11561
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11562
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11563
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11565
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11566
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11568
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11569
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11570
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11571
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11572
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11573
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11574
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11575
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11576
    "Created: / 7.1.1998 / 18:51:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11577
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11578
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11579
_InetAddressImpl_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11580
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11582
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11584
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11585
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11587
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11588
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11589
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11590
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11591
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11592
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11593
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11594
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11595
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11596
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11598
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11599
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11600
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11601
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11602
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11603
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11604
    "Created: / 5.1.1998 / 02:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11605
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11606
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11608
_InetAddress_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11609
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11610
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11612
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11613
    "Created: / 17.11.1998 / 23:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11614
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11616
_InetAddress_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11617
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11619
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11621
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11622
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11623
    ^ Java as_String:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11624
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11625
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11626
    "Created: / 17.11.1998 / 23:54:54 / cg"
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
_InetAddress_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11630
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11631
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11632
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11633
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11634
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11635
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11636
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11637
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11638
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11639
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11640
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11641
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11642
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11643
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11644
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11645
    "Created: / 17.11.1998 / 23:56:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11646
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11648
_InetAddress_lookupHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11649
    "java.lang.Object[] lookupHostByAddr (int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11650
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11651
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11652
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11653
    "Created: / 27.1.2000 / 02:59:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11654
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11655
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11656
_InetAddress_lookupHostByName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11657
    "java.lang.Object[] lookupHostByName (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11658
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11659
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11661
    "Modified: / 27.1.2000 / 02:58:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11662
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11663
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11664
_InetAddress_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11665
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11666
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11667
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11669
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11670
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11671
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11672
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11673
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11674
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11675
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11676
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11677
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11678
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11679
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11680
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11681
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11683
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11684
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11685
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11687
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11688
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11689
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11690
    "Created: / 17.11.1998 / 23:54:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11691
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11693
_Inflater_end0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11694
    "/ void end0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11695
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11696
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11697
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11698
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11699
    "Created: / 27.1.2000 / 03:11:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11700
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11701
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11702
_Inflater_getAdler0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11703
    "/ int getAdler0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11704
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11705
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11706
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11707
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11708
    "Created: / 27.1.2000 / 03:12:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11709
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11710
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11711
_Inflater_getTotalIn0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11712
    "/ int getTotalIn0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11713
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11714
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11715
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11716
    "Created: / 27.1.2000 / 03:10:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11717
    "Modified: / 27.1.2000 / 03:11:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11718
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11720
_Inflater_getTotalOut0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11721
    "/ int getTotalOut0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11723
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11725
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11726
    "Created: / 27.1.2000 / 03:12:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11727
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11728
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11729
_Inflater_inflate0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11730
    "/ int inflate0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11731
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11732
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11733
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11734
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11735
    "Created: / 27.1.2000 / 03:11:39 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11736
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11737
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11738
_Inflater_reset0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11739
    "/ void reset0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11740
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11741
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11742
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11743
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11744
    "Created: / 27.1.2000 / 03:11:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11745
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11746
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11747
_Inflater_setDictionary0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11748
    "/ void setDictionary0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11749
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11750
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11752
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11753
    "Created: / 27.1.2000 / 03:10:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11754
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11755
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11756
_InputThread_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11757
    self _WToolkit_eventLoop:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11758
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11759
    "Created: / 28.1.1998 / 22:34:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11760
    "Modified: / 28.1.1998 / 22:35:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11761
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11762
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11763
_Introspector_getMethodDescriptor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11764
    "java.lang.String getMethodDescriptor (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11765
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11766
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11768
    "Created: / 27.1.2000 / 02:47:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11769
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11770
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11771
_Introspector_getMethodParameterCount:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11772
    "int getMethodParameterCount (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11773
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11774
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11775
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11776
    "Created: / 27.1.2000 / 02:49:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11777
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11778
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11779
_Introspector_getPublicDeclaredMethods0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11780
    "java.lang.reflect.Method[] getPublicDeclaredMethods0 (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11782
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11783
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11784
    "Created: / 27.1.2000 / 02:48:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11785
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11787
_JPEGImageDecoder_readImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11788
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11789
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11790
    "Created: / 12.11.1998 / 18:53:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11791
    "Modified: / 12.11.1998 / 18:53:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11792
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11793
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11794
_MButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11795
    ^ self _WButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11796
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11797
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11798
_MCanvasPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11799
    |jCanvasPeer jFrame frame subView|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11801
    jCanvasPeer := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11803
    jFrame := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11804
    jFrame isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11805
	self halt:'no frame in canvasPeer create'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11806
	self internalError:'no frame in canvasPeer create'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11807
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11808
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11809
    frame := jFrame instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11810
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11811
    subView := JavaView in:frame.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11812
    subView delegate:self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11813
    subView javaPeer:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11814
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11815
    self createdWindowsView:subView for:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11817
    WindowCreationTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11818
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11819
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11821
    "Modified: / 16.1.1998 / 13:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11822
    "Created: / 18.11.1998 / 00:14:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11823
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11824
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11825
_MComponentPeer_cacheInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11826
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11827
    "Created: / 28.1.1998 / 22:22:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11828
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11829
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11830
_MComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11831
    ^ self _WComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11833
    "Created: / 18.11.1998 / 00:21:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11834
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11835
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11836
_MComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11837
    ^ self _WComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11838
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11839
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11840
_MComponentPeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11841
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11842
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11843
    "Created: / 18.11.1998 / 00:15:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11844
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11845
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11846
_MComponentPeer_pInitialize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11847
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11848
    "Created: / 28.1.1998 / 22:27:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11849
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11850
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11851
_MComponentPeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11852
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11853
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11854
    "Created: / 18.11.1998 / 00:18:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11855
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11857
_MComponentPeer_pSetBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11858
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11859
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11860
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11861
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11862
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11863
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11864
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11865
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11866
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11867
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11868
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11869
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11870
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11871
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11872
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11873
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11874
_MComponentPeer_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11875
    |view jFont stFont name style size|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11876
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11877
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11878
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11879
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11880
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11881
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11882
        name := jFont instVarNamed:'name'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11883
        style := jFont instVarNamed:'style'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11884
        size := jFont instVarNamed:'size'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11885
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11886
        stFont := self replacementFontFor:(Java as_ST_String:name) style:style size:size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11887
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11888
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11889
    view font:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11891
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11892
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11893
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11894
_MComponentPeer_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11895
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11896
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11897
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11898
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11899
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11900
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11901
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11902
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11903
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11904
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11905
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11906
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11907
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11908
    view foregroundColor:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11909
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11911
_MComponentPeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11912
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11914
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11915
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11916
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11917
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11918
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11919
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11920
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11921
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11922
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11923
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11924
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11926
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11927
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11928
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11930
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11931
    "Created: / 18.11.1998 / 00:21:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11932
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11934
_MComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11935
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11936
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11937
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11939
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11940
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11941
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11942
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11945
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11946
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11947
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11948
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11949
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11950
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11951
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11952
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11953
    "Created: / 17.11.1998 / 23:49:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11954
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11955
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11956
_MComponentPeer_setCursor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11957
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11958
    "Created: / 28.1.1998 / 22:27:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11959
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11960
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11961
_MComponentPeer_setFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11962
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11963
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11964
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11965
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11966
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11967
    "Modified: / 25.1.1998 / 01:22:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11968
    "Created: / 17.11.1998 / 23:43:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11969
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11970
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11971
_MComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11972
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11974
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11975
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11976
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11977
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11978
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11979
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11981
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11983
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11985
    "Created: / 17.11.1998 / 23:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11986
    "Modified: / 17.11.1998 / 23:57:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11987
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11989
_MFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11990
    ^ self _WFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11992
    "Created: / 28.1.1998 / 22:25:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11993
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11994
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11995
_MFramePeer_getWindowBackgroundColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11996
    ^ View defaultViewBackgroundColor rgbValue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11998
    "Created: / 17.11.1998 / 23:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11999
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12001
_MFramePeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12002
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12004
    "Created: / 28.1.1998 / 22:27:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12005
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12006
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12007
_MFramePeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12008
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12009
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12010
    "Created: / 28.1.1998 / 22:28:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12011
    "Modified: / 28.1.1998 / 22:29:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12012
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12014
_MFramePeer_pSetTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12015
    self _WWindowPeer__setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12017
    "Created: / 28.1.1998 / 22:30:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12018
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12019
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12020
_MFramePeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12021
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12022
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12023
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12025
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12026
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12027
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12028
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12029
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12030
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12031
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12032
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12033
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12034
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12035
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12036
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12037
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12039
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12040
    "Created: / 18.11.1998 / 00:19:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12041
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12042
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12043
_MFramePeer_setInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12045
    "Created: / 17.11.1998 / 23:55:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12046
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12048
_MFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12049
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12050
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12051
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12052
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12053
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12054
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12055
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12056
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12057
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12058
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12059
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12060
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12061
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12062
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12063
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12064
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12065
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12066
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12067
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12068
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12070
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12071
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12072
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12073
    "Created: / 17.11.1998 / 23:51:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12074
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12075
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12076
_MToolkit_callbackLoop: nativeContext
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12077
    | toolKit |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12078
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12079
    ^ self.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12080
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12081
        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
 12082
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12083
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12084
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12085
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12086
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12087
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12088
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12089
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12090
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12091
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12092
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12093
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12094
    "Created: / 17-11-1998 / 23:58:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12095
    "Modified: / 08-01-1999 / 17:08:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12096
    "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
 12097
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12098
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12099
_MToolkit_eventLoop: nativeContext
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12100
    | toolKit |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12101
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12102
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12103
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12104
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12105
    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
 12106
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12107
    self halt.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12108
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12109
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12110
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12111
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12112
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12113
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12114
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12115
    "Created: / 17-11-1998 / 23:04:29 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12116
    "Modified: / 08-01-1999 / 17:08:21 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12117
    "Modified: / 22-11-2011 / 13:24:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12118
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12119
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12120
_MToolkit_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12122
    "Created: / 28.1.1998 / 22:21:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12123
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12124
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12125
_MToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12126
    ^ self _WToolkit_loadSystemColors:nativeContext
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
_MToolkit_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12130
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12131
    "Created: / 28.1.1998 / 22:22:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12132
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12133
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12134
_Math_IEEEremainder:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12135
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12137
    "Created: / 12.11.1998 / 18:52:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12138
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12140
_Math_acos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12141
    "arc cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12143
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12145
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12146
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12147
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12148
"/            'JAVAVM [info]: missing double flag in Math>>acos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12149
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12150
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12151
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12152
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12153
    ^ dVal arcCos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12155
    "Created: / 7.5.1998 / 00:34:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12156
    "Modified: / 11.11.1998 / 15:08:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12159
_Math_asin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12160
    "arc sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12162
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12164
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12165
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12166
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12167
"/            'JAVAVM [info]: missing double flag in Math>>asin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12168
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12169
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12170
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12171
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12172
    ^ dVal arcSin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12173
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12174
    "Created: / 7.5.1998 / 00:34:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12175
    "Modified: / 11.11.1998 / 15:08:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12176
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12178
_Math_atan2:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12179
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12180
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12181
    "Created: / 12.11.1998 / 18:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12182
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12184
_Math_atan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12185
    "arc tangens"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12186
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12187
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12189
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12190
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12191
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12192
"/            'JAVAVM [info]: missing double flag in Math>>atan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12193
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12194
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12195
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12196
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12197
    ^ dVal arcTan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12199
    "Created: / 6.2.1998 / 01:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12200
    "Modified: / 11.11.1998 / 15:08:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12201
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12203
_Math_ceil:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12204
    "ceiling"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12206
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12208
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12209
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12210
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12211
"/            'JAVAVM [info]: missing double flag in Math>>ceil' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12212
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12213
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12214
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12215
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12216
    ^ dVal ceilingAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12218
    "Created: / 7.1.1998 / 15:43:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12219
    "Modified: / 11.11.1998 / 15:08:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12220
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12222
_Math_cos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12223
    "cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12224
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12225
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12227
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12228
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12229
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12230
"/            'JAVAVM [info]: missing double flag in Math>>cos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12231
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12232
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12233
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12234
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12235
    ^ dVal cos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12237
    "Created: / 7.1.1998 / 15:41:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12238
    "Modified: / 11.11.1998 / 15:07:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12239
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12241
_Math_exp:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12242
    "exponential"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12244
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12246
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12247
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12248
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12249
"/            'JAVAVM [info]: missing double flag in Math>>exp' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12250
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12251
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12252
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12253
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12254
    ^ dVal exp
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12256
    "Created: / 7.5.1998 / 00:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12257
    "Modified: / 11.11.1998 / 15:07:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12258
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12260
_Math_floor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12261
    "floor"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12263
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12265
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12266
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12267
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12268
"/            'JAVAVM [info]: missing double flag in Math>>floor' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12269
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12270
"/            self halt:'expected double arg'
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
    ^ dVal floorAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12275
    "Created: / 7.1.1998 / 19:09:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12276
    "Modified: / 11.11.1998 / 15:07:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12277
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12279
_Math_log:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12280
    "natural logarithm"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12282
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12284
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12285
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12286
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12287
"/            'JAVAVM [info]: missing double flag in Math>>log' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12288
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12289
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12290
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12291
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12292
    ^ dVal ln
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12294
    "Created: / 7.1.1998 / 15:42:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12295
    "Modified: / 30.12.1998 / 17:41:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12296
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12298
_Math_pow:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12299
    "power"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12301
    |dVal1 dVal2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12303
    dVal1 := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12304
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12305
"/        dVal1 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12306
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12307
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12308
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12309
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12310
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12311
    dVal2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12312
"/    (nativeContext argAt:4) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12313
"/        dVal2 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12314
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12315
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12316
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12317
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12318
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12319
    ^ dVal1 raisedTo:dVal2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12321
    "Created: / 7.1.1998 / 15:44:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12322
    "Modified: / 11.11.1998 / 15:07:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12323
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12325
_Math_rint:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12326
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12328
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12329
    ^ dVal rounded asFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12330
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12332
_Math_sin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12333
    "sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12335
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12337
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12338
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12339
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12340
"/            'JAVAVM [info]: missing double flag in Math>>sin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12341
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12342
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12343
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12344
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12345
    ^ dVal sin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12347
    "Created: / 7.1.1998 / 15:41:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12348
    "Modified: / 11.11.1998 / 15:07:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12349
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12351
_Math_sqrt:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12352
    "square root"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12354
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12356
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12357
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12358
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12359
"/            'JAVAVM [info]: missing double flag in Math>>sqrt' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12360
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12361
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12362
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12363
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12364
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12365
    "/ how about domain errors ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12366
    dVal < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12367
	^ 0.0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12368
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12369
    ^ dVal sqrt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12371
    "Created: / 7.1.1998 / 15:42:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12372
    "Modified: / 29.12.1998 / 13:22:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12373
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12375
_Math_tan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12376
    "tangent"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12377
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12378
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12380
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12381
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12382
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12383
"/            'JAVAVM [info]: missing double flag in Math>>tan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12384
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12385
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12386
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12387
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12388
    ^ dVal tan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12390
    "Created: / 7.5.1998 / 00:34:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12391
    "Modified: / 11.11.1998 / 15:07:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12392
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12393
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12394
_MemoryAdvice_register0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12395
    "private native void register0()"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12397
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12398
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12399
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12400
_Method_getModifiers:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12401
    |jMethod mthd retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12403
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12405
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12406
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12407
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12408
	^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12409
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12410
    ^ mthd accessFlags
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12411
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12412
    "Modified: / 9.4.1998 / 17:50:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12413
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12414
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12415
_MozillaAppletContext_pMochaOnLoad:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12416
    |id|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12418
    id := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12419
"/ 'JAVA: MozillaAppletContext_pMochaOnLoad: ' print. id printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12420
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12422
    "Created: / 6.1.1998 / 20:37:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12423
    "Modified: / 6.2.1998 / 02:13:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12424
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12425
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12426
_MozillaAppletContext_pShowDocument:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12427
    |jAppletContext s1 s2 s3 js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12429
    jAppletContext := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12430
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12431
    s1 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12432
    js := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12433
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12434
    js := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12435
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12436
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12437
    "/ somehow pass it to the html browser ....
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12438
Transcript show:'pShowDocument: '; show:s1; show:' / ';
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12439
	   show:s2; show:' / '; showCR:s3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12441
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12443
    "Created: / 29.3.1998 / 15:53:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12444
    "Modified: / 29.12.1998 / 13:32:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12445
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12447
_MozillaAppletContext_pShowStatus:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12448
    |s js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12449
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12450
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12451
    js isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12452
	s := ''
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12453
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12454
	s := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12455
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12456
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12457
    self activityNotification:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12458
"/ Transcript showCR:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12459
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12461
    "Created: / 6.1.1998 / 18:31:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12462
    "Modified: / 22.10.1998 / 01:17:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12463
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12465
_MozillaAppletContext_setConsoleState0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12466
    "/ void setConsoleState0 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12467
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12468
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12469
    "Created: / 12.11.1998 / 19:23:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12470
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12471
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12472
_ObjectInputStream_allocateNewArray:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12473
    "/ java.lang.Object allocateNewArray (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12474
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12475
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12476
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12477
    "Created: / 12.11.1998 / 19:02:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12478
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12479
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12480
_ObjectInputStream_allocateNewObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12481
    "/ java.lang.Object allocateNewObject (java.lang.Class java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12482
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12483
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12484
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12485
    "Created: / 12.11.1998 / 19:02:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12486
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12487
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12488
_ObjectInputStream_inputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12489
    "/ void inputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12490
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12491
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12492
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12493
    "Created: / 12.11.1998 / 19:02:22 / cg"
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
_ObjectInputStream_invokeDefaultReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12497
    "/ void invokeDefaultReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12498
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12499
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12501
    "Created: / 27.1.2000 / 03:00:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12502
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12503
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12504
_ObjectInputStream_invokeObjectReader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12505
    "/ boolean invokeObjectReader (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12506
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12507
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12508
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12509
    "Created: / 12.11.1998 / 19:03:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12510
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12511
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12512
_ObjectInputStream_invokeReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12513
    "/ void invokeReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12514
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12515
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12517
    "Created: / 27.1.2000 / 03:01:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12518
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12519
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12520
_ObjectInputStream_loadClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12521
    "/ java.lang.Class loadClass0 (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12522
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12523
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12524
    "Created: / 12.11.1998 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12525
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12526
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12528
_ObjectOutputStream_invokeDefaultWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12529
    "/ void invokeDefaultWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12531
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12533
    "Created: / 27.1.2000 / 03:01:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12534
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12536
_ObjectOutputStream_invokeObjectWriter:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12537
    "/ boolean invokeObjectWriter (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12538
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12540
    "Created: / 12.11.1998 / 19:00:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12541
    "Modified: / 12.11.1998 / 19:01:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12542
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12543
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12544
_ObjectOutputStream_invokeWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12545
    "/ void invokeWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12546
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12547
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12549
    "Created: / 27.1.2000 / 03:01:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12550
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12551
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12552
_ObjectOutputStream_outputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12553
    "/ void outputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12554
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12556
    "Created: / 12.11.1998 / 19:00:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12557
    "Modified: / 12.11.1998 / 19:01:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12558
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12559
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12560
_ObjectStreamClass_doMismatchedRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12561
    "/ void doMismatchedRead (java.io.ObjectInputStream java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12562
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12563
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12565
    "Created: / 27.1.2000 / 02:50:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12566
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12568
_ObjectStreamClass_findObjectMethod0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12569
    "/ boolean findObjectMethod0 (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12570
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12571
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12573
    "Created: / 27.1.2000 / 02:51:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12574
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12575
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12576
_ObjectStreamClass_getClassAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12577
    "/ int getClassAccess (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12578
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12580
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12581
    "Created: / 12.11.1998 / 19:04:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12582
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12584
_ObjectStreamClass_getClassDefinedUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12585
    "/ long getClassDefinedUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12586
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
    "Created: / 27.1.2000 / 02:51:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12590
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12591
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12592
_ObjectStreamClass_getFieldAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12593
    "/ int getFieldAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12594
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12596
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12597
    "Created: / 12.11.1998 / 19:05:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12598
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12599
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12600
_ObjectStreamClass_getFieldSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12601
    "/ java.lang.String[] getFieldSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12602
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12603
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12604
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12605
    "Created: / 12.11.1998 / 19:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12606
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12608
_ObjectStreamClass_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12609
    "/ java.io.ObjectStreamField[] getFields0 (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12610
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12612
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12613
    "Created: / 12.11.1998 / 19:05:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12614
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12616
_ObjectStreamClass_getMethodAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12617
    "/ int getMethodAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12618
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12619
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12620
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12621
    "Created: / 12.11.1998 / 19:04:51 / 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
_ObjectStreamClass_getMethodSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12625
    "/ java.lang.String[] getMethodSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12626
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12627
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12628
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12629
    "Created: / 12.11.1998 / 19:04:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12630
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12631
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12632
_ObjectStreamClass_getSerialVersionUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12633
    "/ long getSerialVersionUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12634
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12635
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12636
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12637
    "Created: / 12.11.1998 / 19:05:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12638
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12639
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12640
_ObjectStreamClass_hasWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12641
    "/ boolean hasWriteObject (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12642
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12643
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12644
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12645
    "Created: / 12.11.1998 / 19:05:53 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12647
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12648
_OffScreenImageSource_sendPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12649
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12650
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12651
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12652
    "Modified: / 16.1.1998 / 18:22:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12653
    "Created: / 17.1.1998 / 12:36:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12654
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12655
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12656
_PackedColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12657
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12658
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12659
    "Created: / 28.1.1998 / 22:19:35 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12660
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12662
_PlainDatagramSocketImpl_bind:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12663
    |jsock jaddr port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12665
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12666
    port := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12667
    jaddr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12669
    hostName := jaddr instVarNamed:'hostName'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12670
    hostName isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12671
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12672
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12673
	hostName := Java as_ST_String:hostName
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12674
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12676
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12677
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12678
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12679
	    ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12680
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12682
	ok := sock bindTo:port address:nil "hostName".
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12683
	ok ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12684
	    err := OperatingSystem lastErrorString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12685
	    Transcript showCR:'sock err: ' , err printString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12686
	    self throwIOExceptionWithMessage:'bind failed'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12687
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12688
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12690
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12691
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12692
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12694
_PlainDatagramSocketImpl_join:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12695
    "/ native void join (InetAddress arg1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12697
    |jsock addr sock ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12699
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12700
    addr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12702
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12703
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12704
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12705
	    ('JAVA: socket join ' , addr printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12706
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12707
	self throwIOExceptionWithMessage:'unimplemented: join'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12708
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12709
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12710
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12712
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12713
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12714
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12716
_PlainDatagramSocketImpl_receive:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12717
    |jsock jdatagramPacket sock ok|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12719
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12720
    jdatagramPacket := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12722
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12723
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12724
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12725
	    ('JAVA: socket receive') infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12726
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12727
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12728
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12729
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12730
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12731
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12732
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12733
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12734
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12735
_PlainDatagramSocketImpl_socketGetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12736
    |jsock opt port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12738
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12739
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12741
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12742
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12743
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12744
	    ('JAVA: socket getOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12745
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12746
	self throwIOExceptionWithMessage:'unimplemented: getOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12747
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12748
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12749
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12750
    ^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12752
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12753
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12754
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12755
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12756
_PlainSocketImpl_socketAvailable:nativeContext
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12757
    |jSock sock n|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12758
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12759
    jSock := nativeContext receiver.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12760
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12761
    sock := self validateFile:jSock.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12762
    sock isNil ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12763
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12764
	^ self.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12765
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12766
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12767
    n := sock numAvailable.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12768
    ^ n
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12769
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12770
    "Created: / 4.2.1998 / 16:58:49 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12771
    "Modified: / 30.12.1998 / 20:10:08 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12772
!
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12773
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12774
_PlainSocketImpl_socketClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12775
    |jsock sock|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12777
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12779
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12780
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12781
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12782
	    'JAVA: close socket' infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12783
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12784
	sock close.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12785
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12787
    "Modified: / 21.8.1997 / 17:09:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12788
    "Created: / 25.1.1998 / 20:04:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12789
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12790
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12791
_PlatformFont_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12792
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12793
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12794
    "Created: / 28.1.1998 / 22:30:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12795
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12797
_PrintStream_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12798
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12799
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12800
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12801
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12802
    "Created: / 27.1.2000 / 03:00:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12803
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12805
_RandomAccessFile_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12806
    ^ self anyStream_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12807
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12808
    "Created: / 4.2.1998 / 13:26:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12809
    "Modified: / 4.2.1998 / 15:21:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12810
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12812
_Runtime_buildLibName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12813
    |jPath jFileName path fileName libName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12814
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12815
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12816
    jFileName := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12817
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12818
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12819
    fileName := Java as_ST_String:jFileName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12821
    path = '__builtIn__' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12822
	libName := path , '/' , fileName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12823
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12824
	libName := path , '/lib' , fileName , '.so'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12825
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12826
    ^ Java as_String:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12828
    "Modified: / 8.8.1997 / 12:05:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12829
    "Created: / 4.1.1998 / 19:07:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12830
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12831
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12832
_Runtime_execInternal: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12833
    "Run a unix-command; return a process object."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12834
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12835
    | cmdAndArgArray  envArray  cmd  jProcessClass  jProcess |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12836
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12837
    cmdAndArgArray := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12838
    envArray := nativeContext argAt: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12839
    cmd := cmdAndArgArray at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12840
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12841
        jProcessClass := self classForName: 'java.lang.UNIXProcess'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12842
    ] ifFalse: [ jProcessClass := Java classForName: 'java.lang.Win32Process'. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12843
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12844
"/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12845
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12846
    jProcessClass notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12847
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12848
        jProcess := jProcessClass newCleared.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12849
        jProcess
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12850
            perform: #'<init>([Ljava/lang/String;[Ljava/lang/String;)V'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12851
            with: cmdAndArgArray
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12852
            with: envArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12853
        ^ jProcess
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12854
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12855
    self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12856
    self
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12857
        throwIOExceptionWithMessage: 'Process execution disabled/unimplemented'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12858
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12859
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12860
    "Created: / 15.1.1998 / 01:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12861
    "Modified: / 11.12.1998 / 13:09:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12862
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12863
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12864
_Runtime_initializeLinkerInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12865
    "init sharedLib linker, return searchPath as javaString"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12866
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12867
    |path|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12868
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12869
    "/ mhmh - what is done here ?
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12870
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12871
    path := ''.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12872
    LibPath do:[:comp | path size == 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12873
			    path := path , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12874
			] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12875
			    path := path , ':' , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12876
			]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12877
	       ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12878
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12879
    ^ Java as_String:path
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12880
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12881
    "Modified: / 7.8.1997 / 21:17:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12882
    "Created: / 4.1.1998 / 17:53:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12883
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12884
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12885
_Runtime_isInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12886
    "/ boolean isInputStreamLocalised (java.io.DataInputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12887
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12888
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12889
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12890
    "Created: / 27.1.2000 / 03:03:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12891
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12893
_Runtime_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12894
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12895
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12896
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12897
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12898
    "Created: / 27.1.2000 / 03:02:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12899
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12900
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12901
_Runtime_loadFileInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12902
    "load a sharedLib, return boolean 0 (false) if fail; 1 (true) if ok"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12903
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12904
    |ret|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12905
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12906
    ret := self _Runtime_loadFileInternalI:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12907
    ret < 0 ifTrue:[ ret := 0 ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12908
    ^ ret
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12909
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12910
    "Created: / 4.1.1998 / 19:10:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12911
    "Modified: / 4.1.1998 / 19:11:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12912
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12914
_Runtime_loadFileInternalI:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12915
    "1.1b3 change; load a sharedLib like 'loadFileInternal',
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12916
     but return integer:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12917
	-1   outOfMemory error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12918
	0    failed to load
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12919
	1    loaded or already loaded (i.e. ok)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12921
    |jLibName libName libHandle|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12923
    jLibName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12924
    libName := Java as_ST_String:jLibName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12926
    (SimulatedLibs includes:libName) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12927
"/        ('JAVA: builtIn libLoad simulated: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12928
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12929
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12930
    (LoadedLibs notNil and:[LoadedLibs includesKey:libName]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12931
"/        ('JAVA: already loaded: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12932
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12933
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12934
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12935
    libName asFilename exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12936
	('JAVA: no file to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12937
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12938
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12940
    (self confirm:'permission to load native library: ' , libName , ' ?') ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12941
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12942
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12944
    libHandle := ObjectFileLoader loadLibrary:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12945
    libHandle isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12946
	('JAVA: failed to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12947
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12948
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12949
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12950
    LoadedLibs isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12951
	LoadedLibs := Dictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12952
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12953
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12954
    LoadedLibs at:libName put:libHandle.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12955
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12957
    "Created: / 4.1.1998 / 19:10:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12958
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12959
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12960
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12961
_Runtime_runFinalization:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12962
    "/ void runFinalization ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12963
"/    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12964
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12965
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12966
    "Created: / 12.11.1998 / 18:59:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12967
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12968
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12969
_Runtime_runFinalizersOnExit0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12970
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12971
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12972
    |onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12974
    onOff := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12975
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12976
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12977
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12978
    "Created: / 15.10.1998 / 23:34:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12979
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12981
_Runtime_setInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12983
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12985
    "Modified: / 27.1.2000 / 03:02:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12986
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12987
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12988
_Runtime_setOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12990
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12992
    "Modified: / 27.1.2000 / 03:02:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12993
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12994
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12995
_Runtime_totalMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12996
    "free memory - Returns the total number of bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12998
    ^ ObjectMemory oldSpaceSize + ObjectMemory newSpaceSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12999
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13000
    "Created: / 12.1.1998 / 12:59:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13001
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13003
_Runtime_traceInstructions:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13004
    "/ void traceInstructions (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13005
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13006
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13007
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13008
    "Created: / 12.11.1998 / 18:59:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13009
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13011
_Runtime_traceMethodCalls:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13012
    "/ void traceMethodCalls (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13013
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13014
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13015
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13016
    "Created: / 12.11.1998 / 18:59:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13017
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13018
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13019
_ScrollPane_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13020
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13021
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13022
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13023
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13025
_SecurityManager_classDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13026
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13027
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13028
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13029
    "Created: / 12.11.1998 / 18:56:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13030
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13032
_SecurityManager_classLoaderDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13033
    |con depth|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13034
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13035
    con := thisContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13036
    depth := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13037
    [con notNil] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13038
	con receiver == JavaClassReader classLoaderQuerySignal ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13039
	    con selector == #handle:do: ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13040
		depth := depth + 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13041
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13042
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13043
	con := con sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13044
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13045
'JAVA: classLoaderDepth -> ' infoPrint. depth infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13046
    ^ depth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13048
    "Created: / 13.1.1998 / 09:21:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13049
    "Modified: / 13.1.1998 / 09:33:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13050
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13052
_SecurityManager_currentClassLoader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13053
    |loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13054
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13055
    loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13056
"/ 'JAVA: currentClassLoader -> ' infoPrint. loader displayString infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13057
    ^ loader.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13058
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13059
    "Created: / 13.1.1998 / 09:23:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13060
    "Modified: / 11.12.1998 / 12:39:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13061
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13063
_SecurityManager_currentLoadedClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13064
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13065
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13066
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13067
    "Created: / 12.11.1998 / 18:56:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13068
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13070
_SocketInputStream_socketRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13071
    ^ self anyStream_readBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13072
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13073
    "Created: / 25.1.1998 / 20:56:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13074
    "Modified: / 4.2.1998 / 15:52:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13075
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13076
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13077
_SocketOutputStream_socketWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13078
    ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13079
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13080
    "Created: / 25.1.1998 / 21:06:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13081
    "Modified: / 4.2.1998 / 15:52:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13082
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13083
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13084
_String_compareTo:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13085
    "int compareTo (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13086
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13087
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13089
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13090
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13091
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13093
    "Created: / 27.1.2000 / 02:28:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13094
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13095
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13096
_String_equals:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13097
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13099
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13100
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13101
    ^ (jString1 instVarAt:1) = (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13102
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13103
    "Created: / 18.11.1998 / 00:52:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13104
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13105
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13106
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13107
_String_equalsIgnoreCase:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13108
    "boolean equalsIgnoreCase (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13110
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13111
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13112
self halt:'untested'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13113
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13114
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13115
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13116
    ^ (jString1 instVarAt:1) sameAs: (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13117
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13118
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13119
    "Created: / 27.1.2000 / 02:27:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13120
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13122
_String_indexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13123
    "int indexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13124
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13125
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13126
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13127
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13128
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13129
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13130
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13132
    "Created: / 27.1.2000 / 02:30:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13133
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13135
_String_lastIndexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13136
    "int lastIndexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13138
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13139
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13140
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13141
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13142
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13143
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13144
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13145
    "Created: / 27.1.2000 / 02:33:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13146
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13147
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13148
_String_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13149
    |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13150
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13151
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13152
    ^ (jString instVarAt:3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13153
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13154
    "Created: / 18.11.1998 / 00:53:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13155
    "Modified: / 18.11.1998 / 00:54:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13156
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13157
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13158
_String_regionMatches2:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13159
    "boolean regionMatches (boolean int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13161
    |jString1 bool jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13163
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13164
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13165
    jString2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13166
    idx1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13167
    idx2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13168
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13169
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13170
    "Created: / 27.1.2000 / 02:33:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13171
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13173
_String_regionMatches:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13174
    "boolean regionMatches (int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13175
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13176
    |jString1 jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13177
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13178
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13179
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13180
    idx1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13181
    idx2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13182
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13184
    "Created: / 27.1.2000 / 02:32:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13185
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13186
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13187
_String_startsWith:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13188
    "boolean startsWith (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13190
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13191
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13192
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13193
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13194
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13195
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13196
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13197
    "Created: / 27.1.2000 / 02:31:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13198
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13199
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13200
_SystemColor_GetSysColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13201
    "/ int GetSysColor (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13202
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13204
    "Created: / 27.1.2000 / 02:44:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13205
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13206
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13207
_SystemResourceManager_getEntryFromKey:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13208
    "get a resource by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13210
    |key s|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13211
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13212
    key := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13213
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13214
    s := Java effectiveClassPath at:(key+1) ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13215
    s isNil ifTrue:[^ nil].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13216
    ^ Java as_String:s
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13217
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13218
    "Modified: / 22-11-2010 / 13:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13219
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13220
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13221
_SystemResourceManager_validateSystemResource:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13222
    "check a resource"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13223
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13224
    |bool str1 str2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13225
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13226
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13227
    str1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13228
    str2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13229
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13230
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13231
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13232
_System_getCallerClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13233
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13234
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13235
    |senderContext cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13237
    senderContext := nativeContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13238
    [senderContext receiver == (Java at:'java.lang.System')] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13239
	senderContext := senderContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13240
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13242
    senderContext method isStatic ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13243
	cls := senderContext receiver
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13244
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13245
	cls := senderContext receiver class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13246
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13247
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13248
	^ self javaClassObjectForClass:cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13249
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13250
    (cls isMemberOf:(Java at:'java.lang.Class')) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13251
	^ Java at:'java.lang.Class'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13252
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13253
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13254
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13256
    "Modified: / 27.1.1998 / 18:33:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13257
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13258
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13259
_System_validateSecurityManager:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13260
    "void validateSecurityManager (java.lang.SecurityManager)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13261
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13262
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13264
    "Created: / 27.1.2000 / 02:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13265
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13266
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13267
_ThreadGroup_initMainThreadGroup0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13268
    "void initMainThreadGroup0 (java.lang.ThreadGroup)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13270
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13271
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13272
    "Created: / 27.1.2000 / 02:45:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13273
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13274
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13275
_Thread_countStackFrames:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13276
    "/ int countStackFrames ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13277
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13278
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13279
    "Created: / 12.11.1998 / 19:06:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13280
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13281
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13282
_Thread_start: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13283
    "start the thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13284
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13285
    | jThread  jName  name  stProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13286
    jThread := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13287
    (jThread instVarNamed: 'priority') < 1 ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13288
        self halt.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13289
        jThread instVarNamed: 'priority' put: 1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13290
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13291
    stProcess := JavaProcess
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13292
                for: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13293
                    | procName |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13294
                    Object abortSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13295
                        handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13296
                            :ex |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13297
                            procName := stProcess name.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13298
                            (procName startsWith: 'JAVA-AWT-EventQueue') ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13299
                                ('JAVA [info]: thread ' , procName , ' aborted - restarting process.')
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13300
                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13301
                                ex restart.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13302
                            ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13303
                                (stProcess == JavaScreenUpdaterThread
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13304
                                    or: [ stProcess == JavaEventQueueThread ])
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13305
                                        ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13306
                                            ('JAVA [info]: thread ' , procName , ' aborted - restarting process.')
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13307
                                                infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13308
                                            ex restart
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13309
                                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13310
                                        ifFalse: [ ('JAVA [info]: thread ' , procName , ' aborted.') infoPrintCR. ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13311
                            ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13312
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13313
                        do: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13314
                            [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13315
                                JavaVM javaExceptionSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13316
                                    handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13317
                                        :ex |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13318
                                        | exClass |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13319
                                        procName := stProcess name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13320
                                        exClass := ex parameter class.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13321
                                        exClass == (Java at: 'java.lang.ThreadDeath') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13322
                                            ('JAVA: thread ' , procName , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13323
                                        ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13324
                                            Transcript
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13325
                                                showCR: ('JAVA: thread ''' , procName , ''' terminated with exception: '
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13326
                                                        , exClass name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13327
                                        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13328
                                        ex return.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13329
                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13330
                                    do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13331
                                        Object messageNotUnderstoodSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13332
                                            handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13333
                                                :ex |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13334
                                                |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13335
                                                "/ remap doesNotUnderstand with nil-receiver to
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13336
                                                "/ a nullPointerException ...
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13337
                                                 con  m |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13338
                                                con := ex suspendedContext.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13339
                                                con receiver isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13340
                                                    ((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
 13341
                                                        self throwNullPointerException.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13342
                                                        AbortSignal raise.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13343
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13344
                                                        "/ ex proceed.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13345
                                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13346
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13347
                                                ex reject.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13348
                                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13349
                                            do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13350
                                                "/ 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
 13351
                                                jThread perform: #'run()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13352
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13353
                                                    ('JAVA: thread ' , stProcess name , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13354
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13355
                                                jThread perform: #'exit()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13356
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13357
                                                    ('JAVA: after exit of thread ' , stProcess name) infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13358
                                                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13359
                                            ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13360
                                    ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13361
                            ] ensure: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13362
                                | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13363
                                monitors := EnteredMonitorsPerProcess at: stProcess ifAbsent: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13364
                                monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13365
                                    monitors do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13366
                                        :obj |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13367
                                        | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 13368
                                        mon := obj getJavaMonitorFor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13369
                                        mon notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13370
                                            mon owningProcess == stProcess ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13371
                                                ('JAVA: release monitor owned by dying thread: ' , stProcess name)
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13372
                                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13373
                                                mon exit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13374
                                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13375
                                        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13376
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13377
                                    EnteredMonitorsPerProcess removeKey: stProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13378
                                    stProcess == JavaScreenUpdaterThread ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13379
                                        JavaScreenUpdaterThread := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13380
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13381
                                    stProcess == JavaEventQueueThread ifTrue: [ JavaEventQueueThread := nil. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13382
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13383
"/                                    screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13384
"/                                    screenUpdaterClass notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13385
"/                                        screenUpdaterClass instVarNamed:'updater' put:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13386
"/                                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13387
                                ].
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13388
                                Java removeThread: jThread ifAbsent: [].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13389
                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13390
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13391
                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13392
                priority: (Processor activePriority).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13393
    jName := jThread instVarNamed: 'name'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13394
    jName isString ifFalse: [ name := Java as_ST_String: jName. ] ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13395
        name := jName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13396
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13397
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13398
    "/ kludge - remember the ScreenUpdater ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13399
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13400
    name = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13401
        name = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13402
            (name startsWith: 'AWT-EventQueue') ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13403
                JavaEventQueueThread := stProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13404
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13405
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13406
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13407
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13408
"/name = 'UserDialogShowThread' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13409
"/self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13410
"/].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13411
    "/ when that process terminates, wakup any waiters
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13412
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13413
    stProcess addExitAction: [ self notify: jThread ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13414
    stProcess name: 'JAVA-' , name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13415
    stProcess restartable: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13416
    stProcess resume.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13417
    Java addThread: jThread for: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13418
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13419
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13420
    "Created: / 03-01-1998 / 02:05:52 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13421
    "Modified: / 24-12-1999 / 03:14:33 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13422
    "Modified: / 09-12-2011 / 12:52:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 13423
    "Modified: / 27-08-2012 / 11:36:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13424
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13425
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13426
_Thread_suspend0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13427
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13429
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13431
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13432
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13433
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13434
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13435
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13436
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13437
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13438
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13439
    stProcess suspend
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13441
    "Created: / 8.1.1998 / 01:05:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13442
    "Modified: / 6.2.1998 / 02:15:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13443
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13444
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13445
_Throwable_printStackTrace0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13446
    |out outStream exceptionObject contextList|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13447
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13448
    outStream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13449
    exceptionObject := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13451
    contextList := exceptionObject instVarNamed:'backtrace'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13452
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13453
    out := self javaConsoleStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13454
    out cr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13455
    out nextPutLine:'JAVA: stackTrace:'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13456
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13457
    contextList do:[:con |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13458
	out
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13459
	    nextPutAll:'  ';
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13460
	    nextPutAll:(con method javaClass fullName);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13461
	    nextPutAll:'.';
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13462
	    nextPutAll:(con method selector);
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13463
	    nextPutAll:' [';
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13464
	    nextPutAll:(con method javaClass sourceFile);
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13465
	    nextPutAll:' ';
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13466
	    nextPutAll:(con quickLineNumber displayString);
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13467
	    nextPutAll:']'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13468
	out cr
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13469
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13470
    out nextPutLine:'----------------------------------------------------'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13471
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13472
    "Created: / 4.1.1998 / 14:27:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13473
    "Modified: / 10.11.1998 / 14:19:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13474
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13475
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13476
_URLConnection_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13477
    "/ void close ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13478
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13480
    "Created: / 12.11.1998 / 19:26:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13481
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13483
_URLConnection_finalize:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13484
    "/ void finalize ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13485
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13487
    "Created: / 12.11.1998 / 19:25:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13488
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13490
_URLConnection_getContentLength0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13491
    "/ int getContentLength0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13492
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13494
    "Created: / 12.11.1998 / 19:25:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13495
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13497
_URLConnection_getContentType0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13498
    "/ java.lang.String getContentType0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13499
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13501
    "Created: / 12.11.1998 / 19:25:42 / 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
_URLConnection_getHeaderField0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13505
    "/ java.lang.String getHeaderField0 (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13506
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13508
    "Created: / 12.11.1998 / 19:25:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13509
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13511
_URLConnection_pCreate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13512
    "/ void pCreate (java.lang.String java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13513
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13515
    "Created: / 12.11.1998 / 19:25:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13516
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13518
_URLInputStream_available:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13519
    "/ int available ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13520
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13522
    "Created: / 12.11.1998 / 19:24:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13523
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13525
_URLInputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13526
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13527
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13529
    "Created: / 12.11.1998 / 19:24:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13530
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13532
_URLInputStream_read:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13533
    "/ int read (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13534
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13536
    "Created: / 12.11.1998 / 19:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13537
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13539
_URLOutputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13540
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13541
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13543
    "Created: / 12.11.1998 / 19:24:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13544
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13546
_URLOutputStream_pClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13547
    "/ void pClose ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13548
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13550
    "Created: / 12.11.1998 / 19:25:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13551
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13553
_URLOutputStream_write:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13554
    "/ void write (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13555
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13556
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13557
    "Created: / 12.11.1998 / 19:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13558
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13559
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13560
_URLOutputStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13561
    "/ void writeBytes (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13562
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13564
    "Created: / 12.11.1998 / 19:24:55 / cg"
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
_URLStreamHandlerFactory_pInit:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13568
    "/ self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13570
    "Created: / 10.1.1998 / 15:47:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13571
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13572
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13573
_URLStreamHandlerFactory_pSupportsProtocol:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13574
    "/ boolean pSupportsProtocol (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13575
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13576
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13577
    "Created: / 12.11.1998 / 19:23:43 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13578
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13580
_VM_getState:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13581
    "/ int getState ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13582
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13584
    "Created: / 12.11.1998 / 19:06:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13585
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13587
_VM_resetJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13588
    "/ void resetJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13589
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13590
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13591
    "Created: / 14.11.1998 / 10:43:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13592
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13594
_VM_resumeJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13595
    "/ void resumeJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13596
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13598
    "Created: / 14.11.1998 / 10:42:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13599
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13600
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13601
_VM_suspendJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13602
    "/ void suspendJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13603
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13605
    "Created: / 14.11.1998 / 10:43:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13606
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13608
_VM_threadsSuspended:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13609
    "/ boolean threadsSuspended ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13610
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13612
    "Created: / 12.11.1998 / 19:07:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13613
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13615
_VM_unsuspendSomeThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13616
    "/ void unsuspendSomeThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13617
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13619
    "Created: / 12.11.1998 / 19:07:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13620
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13621
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13622
_VM_unsuspendThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13623
    "/ void unsuspendThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13624
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13625
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13626
    "Created: / 12.11.1998 / 19:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13627
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13629
_VM_writeJavaMonitorReport:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13630
    "/ void writeJavaMonitorReport ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13631
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13632
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13633
    "Created: / 14.11.1998 / 10:43:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13634
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13635
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13636
_WButtonPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13637
    |jButtonPeer jButton jFrame frame button
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13638
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13640
    jButtonPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13641
    jButton := jButtonPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13643
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13644
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13646
    button := Button in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13647
    button sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13648
    button action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13649
			jButtonPeer perform:#'handleAction()V'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13650
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13651
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13652
    lbl := jButton instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13653
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13654
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13655
	button label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13656
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13657
    self createdWindowsView:button for:jButtonPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13659
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13660
	'WButtonPeer_create: ' print. frame print. ' -> ' print. button printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13661
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13663
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13664
    "Modified: / 11.12.1998 / 00:19:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13665
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13666
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13667
_WButtonPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13668
    |label jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13670
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13672
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13673
    label label:(Java as_ST_String:jString)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13675
    "Modified: / 8.1.1998 / 17:35:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13676
    "Created: / 1.2.1998 / 17:05:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13677
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13679
_WCanvasPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13680
    |jCanvasPeer jFrame frame subView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13682
    jCanvasPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13684
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13685
    jFrame isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13686
	self halt:'no frame in canvasPeer create'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13687
	subView := JavaView new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13688
"/        self internalError:'no frame in canvasPeer create'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13689
"/        ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13690
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13691
	frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13692
	subView := JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13693
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13694
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13695
    subView delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13696
    subView javaPeer:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13698
    self createdWindowsView:subView for:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13699
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13700
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13701
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13702
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13704
    "Created: / 5.1.1998 / 00:59:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13705
    "Modified: / 16.1.1998 / 13:40:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13706
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13708
_WCheckboxMenuItemPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13709
    "/ void setState (boolean)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13710
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13712
    "Created: / 12.11.1998 / 19:14:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13713
    "Modified: / 3.12.1998 / 21:41:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13714
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13716
_WCheckboxPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13717
    |jCheckboxPeer jCheckbox jFrame frame checkBox lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13719
    jCheckboxPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13720
    jCheckbox := jCheckboxPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13722
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13723
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13725
    checkBox := CheckBox in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13726
    checkBox action:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13727
			jCheckboxPeer
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13728
			    perform:#'handleAction(Z)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13729
			    with:(checkBox isOn ifTrue:[1] ifFalse:[0])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13730
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13731
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13732
    lbl := jCheckbox instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13733
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13734
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13735
	checkBox label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13736
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13738
    self createdWindowsView:checkBox for:jCheckboxPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13740
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13741
	'WCheckboxPeer_create: ' print. frame print. ' -> ' print. checkBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13742
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13744
    "Created: / 7.1.1998 / 21:48:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13745
    "Modified: / 15.1.1998 / 12:27:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13746
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13748
_WCheckboxPeer_setCheckboxGroup:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13749
    |checkBox jGroup|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13751
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13753
    jGroup := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13755
    "Created: / 7.1.1998 / 21:48:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13756
    "Modified: / 25.1.1998 / 01:20:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13757
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13758
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13759
_WCheckboxPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13760
    "/ void setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13761
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13763
    "Created: / 12.11.1998 / 19:14:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13764
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13766
_WCheckboxPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13767
    |checkBox state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13769
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13771
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13772
    state ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13773
	checkBox turnOn
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13774
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13775
	checkBox turnOff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13776
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13777
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13778
    "Created: / 7.1.1998 / 21:49:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13779
    "Modified: / 25.1.1998 / 01:26:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13780
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13782
_WChoicePeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13783
    |jString index comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13785
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13787
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13788
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13789
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13790
    comboBox model list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13791
    comboBox model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13793
    "Created: / 7.1.1998 / 21:45:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13794
    "Modified: / 24.1.1998 / 18:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13795
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13796
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13797
_WChoicePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13798
    |jChoicePeer jChoice jFrame frame comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13799
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13800
    jChoicePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13801
    jChoice := jChoicePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13802
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13803
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13804
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13806
    comboBox := ComboListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13807
    comboBox model:(SelectionInList new list:(OrderedCollection new)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13808
    comboBox action:[:index |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13809
			jChoicePeer
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13810
			    perform:#'handleAction(I)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13811
			    with:(comboBox model selectionIndex - 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13812
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13814
    self createdWindowsView:comboBox for:jChoicePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13816
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13817
	'WChoicePeer_create: ' print. frame print. ' -> ' print. comboBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13818
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13820
    "Created: / 7.1.1998 / 21:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13821
    "Modified: / 28.1.1998 / 23:19:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13822
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13823
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13824
_WChoicePeer_remove:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13825
    "/ void remove (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13826
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13827
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13828
    "Created: / 12.11.1998 / 19:12:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13829
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13830
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13831
_WChoicePeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13832
    self commonReshapeComponent:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13833
"/    self pReshape:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13834
    ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13836
    "Created: / 7.1.1998 / 21:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13837
    "Modified: / 23.12.1998 / 19:08:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13838
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13840
_WChoicePeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13841
    |comboBox index|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13843
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13845
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13846
    comboBox model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13847
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13848
    "Created: / 7.1.1998 / 21:45:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13849
    "Modified: / 25.1.1998 / 09:55:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13850
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13852
_WClipboard_getClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13853
    "/ java.lang.String getClipboardText ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13854
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13855
    |str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13857
    str := Screen current rootView getTextSelection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13858
    str isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13859
	str := ''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13860
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13861
    ^ Java as_String:''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13862
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13863
    "Modified: / 10.12.1998 / 21:28:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13864
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13865
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13866
_WClipboard_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13867
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13869
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13870
    "Created: / 4.1.1998 / 19:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13871
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13872
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13873
_WClipboard_setClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13874
    "/ void setClipboardText (java.awt.datatransfer.StringSelection)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13875
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13876
    |strSel data|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13878
    strSel := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13879
    data := strSel instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13880
    data class == (Java at:'java.lang.String') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13881
	Screen current rootView setTextSelection:(Java as_ST_String:data)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13882
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13883
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13885
    "Created: / 12.11.1998 / 19:15:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13886
    "Modified: / 10.12.1998 / 21:25:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13887
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13888
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13889
_WColor_getDefaultColor: nativeContext
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13890
    | clrIndex  jClr  clr |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13891
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13892
    clrIndex := nativeContext argAt: 1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13893
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13894
    "/ windows defaults:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13895
    "/  1: view background
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13896
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13897
    clrIndex == 1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13898
        clr := View defaultViewBackgroundColor.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13899
        clr isColor ifFalse: [ clr := Color gray: 50. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13900
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13901
    clrIndex == 2 ifTrue: [ clr := Color black. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13902
    clr isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13903
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13904
        self internalError: 'breakpoint'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13905
        ^ nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13906
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13907
    clr := clr on: (Screen current).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13908
    jClr := (self classForName: 'java.awt.Color') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13909
    jClr instVarNamed: 'pData' put: clr.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13910
    jClr instVarNamed: 'value' put: (clr rgbValue).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13911
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13912
"/ self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13913
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13914
    ^ jClr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13916
    "Created: / 15.8.1997 / 15:38:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13917
    "Modified: / 4.1.1998 / 18:06:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13918
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13920
_WComponentPeer__beginValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13921
    "/ void _beginValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13922
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13924
    "Created: / 12.11.1998 / 19:10:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13925
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13927
_WComponentPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13928
    |view jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13930
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13932
    Object errorSignal catch:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13933
	view destroy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13934
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13935
    JavaWindowGroup removeView:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13936
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13937
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13938
    jPeer instVarNamed:'pData' put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13940
    "Created: / 7.1.1998 / 22:36:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13941
    "Modified: / 25.1.1998 / 16:43:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13942
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13944
_WComponentPeer__setBackground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13945
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13947
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13948
    view isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13949
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13950
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13951
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13952
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13953
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13954
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13956
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13958
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13959
"/        view viewBackground:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13960
"/        view backgroundPaint:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13961
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13962
"/        (view isMemberOf:JavaView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13963
"/            view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13964
"/            view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13965
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13966
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13968
    (view isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13969
	view := view scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13970
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13971
    view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13972
    view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13973
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13974
    "Created: / 4.1.1998 / 18:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13975
    "Modified: / 4.12.1998 / 17:26:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13976
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13977
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13978
_WComponentPeer__setForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13979
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13980
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13981
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13982
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13983
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13984
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13986
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13987
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13989
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13990
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13991
    view paint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13993
    "Created: / 4.1.1998 / 18:08:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13994
    "Modified: / 8.1.1998 / 17:32:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13995
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13996
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13997
_WComponentPeer_disable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13998
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14000
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14001
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14002
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14003
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14004
	view disable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14005
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14007
    "Created: / 6.1.1998 / 18:26:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14008
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14009
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14010
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14011
_WComponentPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14012
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14014
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14016
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14017
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14018
	view enable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14019
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14021
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14022
    "Created: / 13.1.1998 / 23:08:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14023
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14025
_WComponentPeer_endValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14026
    "/ void endValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14027
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14029
    "Created: / 12.11.1998 / 19:10:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14030
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14031
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14032
_WComponentPeer_getLocationOnScreen: nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14033
    "/ java.awt.Point getLocationOnScreen ()
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14034
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14035
    | view  p  jP |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14036
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14037
    view := self viewForWPeer: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14038
    view isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14039
    p := view originRelativeTo: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14040
    jP := (self classForName: 'java.awt.Point') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14041
    jP instVarNamed: 'x' put: p x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14042
    jP instVarNamed: 'y' put: p y.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14043
    ^ jP
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14044
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14045
    "Modified: / 5.12.1998 / 14:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14046
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14047
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14048
_WComponentPeer_handleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14049
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14050
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14051
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14052
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14054
    |view jEv stEv ignore|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14055
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14056
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14057
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14058
	jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14059
	stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14060
	(stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14061
	    ignore := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14062
	    view isJavaView ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14063
		ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14064
	    ] ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14065
		view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14066
		    stEv type == #terminate ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14067
			ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14068
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14069
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14070
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14072
	    ignore ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14073
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14074
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14075
		].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14076
		view dispatchEvent:stEv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14077
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14078
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14080
	    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14081
		('JAVA: WComponent - handleEvent ignored:' , stEv type) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14082
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14083
	    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14084
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14085
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14086
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14087
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14088
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14090
    "Created: / 6.1.1998 / 21:10:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14091
    "Modified: / 11.12.1998 / 01:04:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14092
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14094
_WComponentPeer_hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14095
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14096
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14097
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14098
"/ view isPopUpView ifTrue:[self halt].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14099
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14100
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14101
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14102
	view beInvisible
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14103
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14105
    "Created: / 7.1.1998 / 22:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14106
    "Modified: / 4.12.1998 / 17:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14107
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14109
_WComponentPeer_nativeHandleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14110
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14111
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14112
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14113
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14115
    |view jEv stEv|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14117
^self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14118
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14119
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14120
	(view isKindOf:JavaView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14121
	    jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14122
	    stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14123
	    (stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14124
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14125
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14126
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14127
		stEv sendEventWithFocusOn:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14128
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14129
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14130
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14131
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14132
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14133
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14134
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14136
    "Created: / 19.10.1998 / 21:26:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14137
    "Modified: / 19.10.1998 / 23:26:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14138
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14139
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14140
_WComponentPeer_requestFocus:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14141
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14143
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14144
"/ 'getFocus - ' print. view displayString printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14146
"/    view getKeyboardFocus
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14148
    "Created: / 7.1.1998 / 22:30:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14149
    "Modified: / 4.12.1998 / 19:42:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14150
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14152
_WComponentPeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14153
    self commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14155
    "Modified: / 18.3.1997 / 19:30:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14156
    "Created: / 4.1.1998 / 18:01:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14158
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14159
_WComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14160
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14161
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14162
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14164
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14165
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14166
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14167
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14169
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14170
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14171
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14172
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14173
"/        view viewBackground:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14174
"/        view backgroundPaint:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14175
"/    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14176
"/        (view isMemberOf:JavaView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14177
"/            view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14178
"/            view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14179
"/        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14180
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14181
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14182
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14183
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14184
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14185
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14186
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14187
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14188
    "Created: / 16.10.1998 / 02:16:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14189
    "Modified: / 16.10.1998 / 02:26:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14190
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14191
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14192
_WComponentPeer_setCursor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14193
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14194
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14195
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14196
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14198
    "Created: / 5.1.1998 / 01:52:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14199
    "Modified: / 25.1.1998 / 01:21:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14200
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14202
_WComponentPeer_setFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14203
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14205
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14206
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14208
    "Created: / 5.1.1998 / 00:55:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14209
    "Modified: / 25.1.1998 / 01:22:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14210
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14211
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14212
_WComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14213
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14214
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14215
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14217
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14218
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14219
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14220
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14221
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14222
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14223
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14225
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14226
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14227
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14228
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14229
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14230
    "Created: / 16.10.1998 / 02:18:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14231
    "Modified: / 16.10.1998 / 02:26:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14232
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14233
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14234
_WComponentPeer_setZOrderPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14235
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14237
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14238
"/    self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14239
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14240
"/ self internalError:'breakPoint'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14242
    "Created: / 4.1.1998 / 17:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14243
    "Modified: / 25.1.1998 / 01:22:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14244
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14246
_WComponentPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14247
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14249
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14251
    "/ frame views are under my browsers own control
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14252
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14253
	view beVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14254
	view realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14255
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14257
"/    view windowGroup notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14258
"/        windowServer addGroup:(view windowGroup)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14259
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14261
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14263
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14265
    "Created: / 5.1.1998 / 01:26:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14266
    "Modified: / 4.12.1998 / 17:43:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14267
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14269
_WComponentPeer_start:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14270
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14272
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14273
    "Created: / 5.1.1998 / 00:58:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14274
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14275
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14276
_WContainerPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14277
    "/ new with ns4.0 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14278
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14279
    "Created: / 16.10.1998 / 02:12:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14280
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14281
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14282
_WDefaultFontCharset_canConvert:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14283
    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14285
    "Modified: / 21.8.1997 / 15:56:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14286
    "Created: / 5.1.1998 / 01:55:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14287
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14289
_WDialogPeer__hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14290
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14292
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14294
    dialog hide.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14296
    "Created: / 7.1.1998 / 22:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14297
    "Modified: / 8.1.1998 / 17:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14298
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14300
_WDialogPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14301
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14303
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14304
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14305
"/ show does not work (yet); must setup windowgroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14306
"/ for it to get events ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14307
"/    dialog realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14309
dialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14310
"/dialog fixSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14311
"/dialog makeFullyVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14312
"/dialog openModal:[true] inGroup:JavaWindowGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14314
    "Created: / 7.1.1998 / 21:52:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14315
    "Modified: / 11.12.1998 / 14:43:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14316
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14318
_WDialogPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14319
    |jDialogPeer dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14321
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14323
    dialog := ModalBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14324
    jDialogPeer instVarNamed:'pData' put:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14326
    self createdWindowsView:dialog for:jDialogPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14327
    dialog windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14328
    JavaWindowGroup addTopView:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14330
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14331
	'WDialogPeer_create: ' print. dialog printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14332
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14334
    "Created: / 7.1.1998 / 21:51:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14335
    "Modified: / 15.1.1998 / 16:12:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14336
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14338
_WDrawingSurfaceInfo_getDepth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14339
    "/ int getDepth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14340
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14342
    "Created: / 12.11.1998 / 19:21:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14343
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14345
_WDrawingSurfaceInfo_getHBitmap:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14346
    "/ int getHBitmap ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14347
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14349
    "Created: / 12.11.1998 / 19:20:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14350
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14352
_WDrawingSurfaceInfo_getHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14353
    "/ int getHDC ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14354
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14356
    "Created: / 12.11.1998 / 19:20:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14357
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14359
_WDrawingSurfaceInfo_getHPalette:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14360
    "/ int getHPalette ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14361
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14363
    "Created: / 12.11.1998 / 19:21:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14364
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14366
_WDrawingSurfaceInfo_getHWnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14367
    "/ int getHWnd ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14368
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14370
    "Created: / 12.11.1998 / 19:20:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14371
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14372
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14373
_WDrawingSurfaceInfo_getPBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14374
    "/ int getPBits ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14375
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14377
    "Created: / 12.11.1998 / 19:20:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14380
_WDrawingSurfaceInfo_lock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14381
    "/ int lock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14382
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14383
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14384
    "Created: / 12.11.1998 / 19:20:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14385
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14387
_WDrawingSurfaceInfo_unlock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14388
    "/ void unlock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14389
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14391
    "Created: / 12.11.1998 / 19:20:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14392
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14393
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14394
_WEmbeddedFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14395
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14396
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14397
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14398
    "Created: / 12.11.1998 / 19:16:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14399
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14401
_WFileDialogPeer_show:nativeContext
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14402
    |jDialogPeer jDialog dialogView stDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14403
     title dir pattern f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14405
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14406
    jDialog := jDialogPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14407
    dialogView := jDialogPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14408
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14409
    stDialog := FileSelectionBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14411
    dir := jDialog instVarNamed:'dir'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14412
    dir notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14413
	stDialog directory:(Java as_ST_String:dir).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14414
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14415
    pattern := jDialog instVarNamed:'file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14416
    pattern notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14417
	stDialog pattern:(Java as_ST_String:pattern).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14418
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14419
    title := jDialog instVarNamed:'title'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14420
    title notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14421
	stDialog title:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14422
	stDialog label:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14423
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14425
    stDialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14427
    stDialog accepted ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14428
	f := stDialog pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14430
	"/ cannot use the one below - it has a builtIn fileSeparator if '\' (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14431
	"/ jDialogPeer perform:#'handleSelected(Ljava/lang/String;)V' with:(Java as_String:f).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14432
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14433
	jDialog
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14434
	    perform:#'setFile(Ljava/lang/String;)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14435
	    with:(Java as_String:(f asFilename baseName)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14436
	jDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14437
	    perform:#'setDirectory(Ljava/lang/String;)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14438
	    with:(Java as_String:(f asFilename directoryName , Filename separator asString)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14439
	jDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14440
	    perform:#'setVisible(Z)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14441
	    with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14442
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14443
	jDialogPeer
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14444
	    perform:#'handleCancel()V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14445
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14446
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14448
    "Created: / 7.1.1998 / 22:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14449
    "Modified: / 15.1.1998 / 13:04:05 / 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
_WFontMetrics_bytesWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14453
    "/ int bytesWidth (byte[] 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:11:46 / 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
_WFontMetrics_getMFCharSegmentWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14460
    "get multi-font string-segment width.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14461
     Not yet supported - use standard strings width"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14463
    |jMetrics jFont jFontDescr stFont w
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14464
     bool1 cp offs lenght bp int1|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14466
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14467
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14468
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14469
    bool1 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14470
    cp := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14471
    offs := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14472
    lenght := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14473
    bp := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14474
    int1 := nativeContext argAt:8.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14476
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14477
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14478
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14479
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14480
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14481
    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14482
	stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14483
	jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14484
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14485
    w := stFont widthOf:cp from:offs+1 to:offs+lenght.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14486
    ^ w.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14488
    "Created: / 5.1.1998 / 01:57:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14489
    "Modified: / 13.1.1998 / 23:44:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14490
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14492
_WFontMetrics_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14493
    |jMetrics jFont stFont widths family name style size|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14494
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14495
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14496
    jFont := jMetrics instVarNamed:'font'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14498
    family := jFont instVarNamed:'family'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14499
    family := Java as_ST_String:family.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14501
    name := jFont instVarNamed:'name'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14502
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14504
    style := jFont instVarNamed:'style'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14505
    size := jFont instVarNamed:'size'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14507
    stFont := Font family:family size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14508
    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14509
        stFont := Font family:'helvetica' size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14510
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14511
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14512
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14513
"/    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14514
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14515
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14516
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14518
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14519
    jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14521
    jMetrics instVarNamed:'ascent'     put:stFont ascent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14522
    jMetrics instVarNamed:'descent'    put:stFont descent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14523
    jMetrics instVarNamed:'leading'    put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14524
    jMetrics instVarNamed:'height'     put:stFont height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14525
    jMetrics instVarNamed:'maxAscent'  put:stFont maxAscent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14526
    jMetrics instVarNamed:'maxDescent' put:stFont maxDescent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14527
    jMetrics instVarNamed:'maxHeight'  put:stFont maxHeight.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14528
    jMetrics instVarNamed:'maxAdvance' put:stFont maxWidth.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14530
    widths := Array new:256.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14531
    0 to:255 do:[:i |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14532
        widths at:(i+1) put:(stFont widthOf:(Character value:i))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14533
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14534
    jMetrics instVarNamed:'widths' put:widths.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14535
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14537
    "Modified: / 8.8.1997 / 12:06:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14538
    "Created: / 5.1.1998 / 01:54:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14539
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14541
_WFontMetrics_needsConversion:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14542
    |jFont jFontDescr stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14544
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14545
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14546
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14547
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14548
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14549
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14550
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14551
"/    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14552
"/        stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14553
"/        jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14554
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14555
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14556
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14557
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14559
    "Modified: / 17.8.1997 / 17:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14560
    "Created: / 5.1.1998 / 01:56:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14561
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14563
_WFramePeer__setIconImage:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14564
    |frame imgRep image|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14565
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14566
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14567
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14568
    imgRep notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14569
	image := imgRep instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14570
	(image notNil and:[image ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14571
	    frame icon:image.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14572
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14573
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14575
    "Created: / 27.4.1998 / 17:15:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14576
    "Modified: / 27.4.1998 / 17:18:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14577
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14579
_WFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14580
    |jFramePeer jFrame top frame pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14581
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14582
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14584
    "/ for now: a kludge to create an embedded frame for
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14585
    "/ mozillaFrames
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14587
    jFrame := jFramePeer instVarNamed:'target'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14588
    (jFrame notNil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14589
    and:[(pDataIdx := jFrame class instVarOffsetOf:'pData') notNil])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14590
    ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14591
	((frame := jFrame instVarAt:pDataIdx) notNil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14592
	and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14593
	    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14594
		'JAVA: targetFrame view already created: ' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14595
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14596
	    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14597
	    pDataIdx := jFramePeer class instVarOffsetOf:'pNativeWidget'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14598
	    pDataIdx isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14599
		"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14600
		pDataIdx := jFramePeer class instVarOffsetOf:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14601
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14602
	    jFramePeer instVarAt:pDataIdx put:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14603
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14604
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14605
	frame := jFramePeer instVarNamed:'pData'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14606
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14608
    (frame notNil and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14609
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14610
	    'JAVA: frame view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14611
	    jFramePeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14612
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14613
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14614
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14615
"/        frame := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14616
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14617
"/        JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14619
	frame := JavaTopView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14620
	frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14621
	frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14622
	self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14623
	JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14625
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14626
"/        frame := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14627
"/        frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14628
"/        frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14629
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14630
"/        JavaWindowGroup addTopView:top.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14631
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14632
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14634
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14635
	'JAVA: WFramePeer_create: ' print. jFramePeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14636
	' frame: ' print. frame printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14637
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14638
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14639
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14640
    "Modified: / 3.12.1998 / 00:10:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14641
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14643
_WFramePeer_setMenuBar0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14644
    |frame jMenuBarPeer menuPanel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14646
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14648
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14649
    jMenuBarPeer isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14650
	"/ mhmh - JAVA wants to remove the frames menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14651
	"/ but I have no handle on it (for destroy).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14652
	"/ search it in subViews of the frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14653
	frame subViews copy do:[:v |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14654
	    (v isKindOf:MenuPanel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14655
		v destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14656
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14657
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14658
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14659
	menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14661
	menuPanel origin:0.0@0.0 corner:1.0@(menuPanel preferredExtent y).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14662
	frame addSubView:menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14663
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14664
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14666
    "Created: / 7.1.1998 / 21:41:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14667
    "Modified: / 8.1.1998 / 17:35:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14668
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14669
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14670
_WFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14671
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14673
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14675
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14676
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14677
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14678
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14679
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14680
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14681
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14682
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14683
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14684
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14685
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14686
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14687
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14688
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14689
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14690
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14691
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14692
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14694
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14695
    "Created: / 16.10.1998 / 02:21:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14696
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14697
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14698
_WFramePeer_setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14699
    |view jString string|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14700
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14701
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14702
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14703
    jString := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14704
    string := Java as_ST_String:jString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14705
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14706
"/ 'JAVA: WFramePeer_pSetTitle: ' print. string print. ' ' print. view printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14707
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14708
    view label:string.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14709
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14710
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14711
    "Modified: / 8.1.1998 / 17:37:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14712
    "Created: / 27.1.1998 / 21:42:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14713
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14714
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14715
_WGraphics__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14716
    "/ void _dispose()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14717
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14719
    "Created: / 12.11.1998 / 19:17:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14720
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14721
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14722
_WGraphics_changeClip:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14723
    |gc x y w h r bool|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14725
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14727
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14728
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14729
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14730
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14731
    bool := (nativeContext argAt:5) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14733
    r := Rectangle left:x top:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14734
"/ 'WGraphics_changeClip: ' infoPrint. r infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14735
    gc clippingRectangle:r.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14737
    "Created: / 6.1.1998 / 20:57:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14738
    "Modified: / 20.10.1998 / 19:40:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14739
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14741
_WGraphics_clearRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14742
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14744
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14745
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14747
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14748
	'JAVA: drawing on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14749
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14750
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14752
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14753
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14754
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14755
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14757
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14758
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14760
    gc clearRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14761
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14762
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14763
    "Modified: / 8.1.1998 / 00:21:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14764
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14766
_WGraphics_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14767
    "/ void close (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14768
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14769
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14770
    "Created: / 12.11.1998 / 19:19:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14771
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14773
_WGraphics_copyArea:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14774
    |gc srcX srcY w h deltaX deltaY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14776
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14777
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14779
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14780
	'JAVA: copyArea on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14781
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14782
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14784
    srcX := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14785
    srcY := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14786
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14787
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14788
    deltaX := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14789
    deltaY := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14791
    gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14792
	copyFrom:gc
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14793
	x:srcX y:srcY
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14794
	toX:srcX+deltaX y:srcY+deltaY
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14795
	width:w height:h
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14796
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14797
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14798
    "Modified: / 9.4.1998 / 22:01:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14799
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14801
_WGraphics_createFromComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14802
    |jGraphics jWin view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14803
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14804
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14805
    jWin := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14807
    view := KnownWindows at:jWin ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14808
    view isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14809
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14810
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14811
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14812
    view clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14814
"/    "/ just a consistency check ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14815
"/    (jWin instVarNamed:'xid') ~~ view ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14816
"/        self halt:'consistency check'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14817
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14819
    jGraphics instVarNamed:'pData' put:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14821
    "Created: / 6.1.1998 / 20:55:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14822
    "Modified: / 20.10.1998 / 19:38:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14823
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14825
_WGraphics_createFromGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14826
    |jGraphics graphics gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14827
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14828
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14829
    graphics := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14830
    gc := graphics instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14832
    jGraphics instVarNamed:'pData' put:gc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14833
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14834
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14835
    "Created: / 8.1.1998 / 00:47:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14836
    "Modified: / 20.10.1998 / 19:37:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14837
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14839
_WGraphics_createFromHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14840
    "/ void createFromHDC (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14841
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14843
    "Created: / 12.11.1998 / 19:17:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14844
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14846
_WGraphics_createFromPrintJob:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14847
    "/ void createFromPrintJob (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14848
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14850
    "Created: / 12.11.1998 / 19:17:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14851
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14853
_WGraphics_dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14854
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14856
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14857
    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14858
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14860
    "Created: / 6.1.1998 / 20:58:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14861
    "Modified: / 20.10.1998 / 19:35:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14862
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14864
_WGraphics_drawArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14865
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14867
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14868
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14869
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14871
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14872
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14873
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14874
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14875
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14876
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14878
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14879
	'drawArc x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14880
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14881
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14882
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14883
    gc
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14884
	displayArcX:x y:y
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14885
	width:w height:h
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14886
	from:startAngle angle:(endAngle - startAngle).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14888
    "Created: / 6.1.1998 / 21:00:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14889
    "Modified: / 28.1.1999 / 17:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14890
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14892
_WGraphics_drawBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14893
    "/ void drawBytes (byte[] int int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14894
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14896
    "Created: / 12.11.1998 / 19:18:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14897
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14898
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14899
_WGraphics_drawLine:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14900
    |gc x y x2 y2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14902
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14903
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14904
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14906
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14907
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14908
    x2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14909
    y2 := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14910
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14911
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14912
	'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
 14913
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14914
    gc displayLineFromX:x y:y toX:x2 y:y2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14916
    "Created: / 6.1.1998 / 20:59:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14917
    "Modified: / 8.1.1998 / 00:34:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14918
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14920
_WGraphics_drawMFCharsConvertedSegment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14921
    "/ int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14922
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14924
    "Created: / 12.11.1998 / 19:18:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14925
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14926
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14927
_WGraphics_drawMFCharsSegment:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14928
    |jFont jFontDescr s gc x y offs len|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14930
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14931
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14933
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14934
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14935
    s := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14936
    offs := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14937
    len := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14938
    x := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14939
    y := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14941
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14942
	'drawMFCharsSegment x/y= ' print. x print. '@' print. y print. ' s= ' print. s printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14943
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14944
    gc displayString:s from:offs+1 to:offs+len x:x y:y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14945
    ^ (gc font onDevice:(gc graphicsDevice)) widthOf:s.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14947
    "Created: / 6.1.1998 / 21:01:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14948
    "Modified: / 25.1.1998 / 20:45:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14949
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14951
_WGraphics_drawOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14952
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14954
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14955
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14956
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14958
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14959
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14960
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14961
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14963
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14964
	'drawOval x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14965
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14966
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14967
    gc displayArcX:x y:y width:w height:h from:0 angle:360.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14969
    "Created: / 8.1.1998 / 00:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14970
    "Modified: / 9.4.1998 / 22:10:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14971
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14972
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14973
_WGraphics_drawPolygon:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14974
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14976
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14977
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14978
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14980
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14981
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14982
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14983
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14984
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14985
	'drawPolgon' printCR.
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
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14989
    gc displayPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14990
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14991
    "Created: / 8.1.1998 / 00:57:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14992
    "Modified: / 8.1.1998 / 00:57:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14993
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14994
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14995
_WGraphics_drawPolyline:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14996
    "/ void drawPolyline (int[] int[] int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14997
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14998
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14999
    "Created: / 12.11.1998 / 19:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15000
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15001
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15002
_WGraphics_drawRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15003
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15004
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15005
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15006
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15007
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15009
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15010
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15011
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15012
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15014
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15015
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15017
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15019
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15020
    "Created: / 8.1.1998 / 00:59:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15021
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15023
_WGraphics_drawRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15024
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15026
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15027
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15028
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15030
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15031
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15032
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15033
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15035
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15036
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15038
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15040
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15041
    "Created: / 8.1.1998 / 00:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15042
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15044
_WGraphics_drawSFChars:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15045
    "/ void drawSFChars (char[]s, int pos1, int len, int x, int y)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15047
    |gc str x y idx1 nChars|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15049
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15050
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15052
    str := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15053
    idx1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15054
    nChars := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15055
    x := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15056
    y := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15058
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15059
	'drawSFChars x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15060
	       ' s= ' print. str printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15061
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15062
    gc displayString:str from:idx1+1 to:idx1+nChars x:x y:y
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15064
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15065
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15067
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15069
_WGraphics_fillArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15070
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15072
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15073
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15074
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15076
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15077
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15078
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15079
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15080
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15081
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15083
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15084
	'fillArc x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15085
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15086
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15087
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15088
    gc fillArcX:x y:y width:w height:h from:startAngle angle:(endAngle - startAngle)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15090
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15091
    "Modified: / 8.1.1998 / 00:33:59 / 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
_WGraphics_fillOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15095
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15096
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15097
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15098
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15099
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15101
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15102
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15103
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15104
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15106
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15107
	'drawOval x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15108
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15109
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15110
    gc fillArcX:x y:y width:w height:h from:0 angle:360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15112
    "Created: / 8.1.1998 / 00:46:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15113
    "Modified: / 8.1.1998 / 00:46:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15114
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15115
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15116
_WGraphics_fillPolygon:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15117
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15119
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15120
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15121
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15122
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15123
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15124
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15125
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15127
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15128
	'fillPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15129
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15131
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15132
    gc fillPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15134
    "Created: / 8.1.1998 / 00:58:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15135
    "Modified: / 25.1.1998 / 11:03:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15136
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15138
_WGraphics_fillRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15139
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15141
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15142
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15143
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15145
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15146
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15147
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15148
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15150
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15151
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15153
    gc fillRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15155
    "Created: / 15.8.1997 / 15:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15156
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15159
_WGraphics_fillRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15160
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15162
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15163
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15164
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15166
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15167
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15168
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15169
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15170
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15171
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15172
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15173
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15174
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15176
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15177
    "Created: / 8.1.1998 / 00:59:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15178
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15179
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15180
_WGraphics_getClipBounds: nativeContext
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15181
    | gc  rect  r  x  y  w  h |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15182
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15183
    gc := self gcForWGraphics: nativeContext.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15184
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15185
"/    gc isNil ifTrue:[^ nil].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15186
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15187
    rect := (self classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15188
    (gc isMemberOf: JavaView) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15189
        "/ r := gc clippingRectangleOrNil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15190
        r := gc getNextUpdateRectangle.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15191
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15192
    r isNil ifTrue: [ r := gc clippingRectangleOrNil. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15193
    r isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15194
        x := y := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15195
        w := (gc width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15196
        h := (gc height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15197
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15198
        x := (r left).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15199
        y := (r top).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15200
        w := (r width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15201
        h := (r height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15202
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15203
    rect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15204
    rect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15205
    rect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15206
    rect instVarNamed: 'height' put: h.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15207
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15208
"/ 'WGraphics__getClipBounds ' infoPrint. (x@y extent:w@h) infoPrintCR.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15209
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15210
    ^ rect
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15212
    "Created: / 6.1.1998 / 20:58:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15213
    "Modified: / 23.12.1998 / 20:14:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15214
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15215
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15216
_WGraphics_imageCreate:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15217
    |jGraphics imgRep|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15218
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15219
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15220
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15222
    jGraphics instVarNamed:'pData' put:(imgRep instVarNamed:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15223
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15224
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15225
    "Created: / 11.1.1998 / 16:34:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15226
    "Modified: / 17.1.1998 / 12:37:18 / cg"
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
_WGraphics_pSetFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15230
    |gc jFont stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15232
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15233
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15235
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15236
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15237
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15238
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15239
	gc font:stFont
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15240
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15242
    "Created: / 6.1.1998 / 20:56:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15243
    "Modified: / 15.1.1998 / 12:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15244
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15246
_WGraphics_pSetForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15247
    |gc rgb clr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15249
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15251
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15252
    rgb isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15253
        "/ its a java.awt.Color
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15254
        rgb := rgb instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15255
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15256
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15257
    gc paint:(clr nearestOn:gc device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15259
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15260
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15261
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15262
    "Created: / 6.1.1998 / 20:56:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15263
    "Modified: / 23.12.1998 / 20:10:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15264
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15266
_WGraphics_print:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15267
    "/ void print (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15268
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15270
    "Created: / 12.11.1998 / 19:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15271
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15273
_WGraphics_removeClip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15274
    "/ void removeClip ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15275
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15277
    "Created: / 12.11.1998 / 19:18:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15278
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15280
_WGraphics_setPaintMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15281
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15283
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15284
    gc function:#copy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15286
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15287
	'copyMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15288
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15290
    "Created: / 8.1.1998 / 00:33:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15291
    "Modified: / 28.1.1998 / 23:25:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15292
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15294
_WGraphics_setXORMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15295
    |gc jColor rgb invColor device|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15297
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15298
    jColor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15299
    device := gc graphicsDevice.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15301
"/    "/ on trueColor systems, use the provided
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15302
"/    "/ rgb value for inverting.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15303
"/    "/ on palette systems, use white ^ black
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15304
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15305
"/    device visualType == #TrueColor ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15306
"/        rgb := jColor instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15307
"/        rgb := rgb bitAnd:16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15308
"/        rgb == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15309
"/            rgb := 16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15310
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15311
"/        invColor := rgb
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15312
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15313
"/        invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15314
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15315
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15316
    invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15318
"/    gc foreground:(Color colorId:invColor)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15319
"/       background:device blackColor.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15320
    device
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15321
	setForeground:invColor background:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15322
	in:gc gcId.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15323
    gc function:#xor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15325
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15326
	'xorMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15327
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15329
    "Created: / 8.1.1998 / 00:36:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15330
    "Modified: / 28.1.1998 / 23:45:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15331
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15333
_WLabelPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15334
    |jLabelPeer jLabel jFrame frame label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15335
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15337
    jLabelPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15338
    jLabel := jLabelPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15340
    lbl := jLabel instVarNamed:'text'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15341
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15342
	lbl := Java as_ST_String:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15343
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15345
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15346
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15348
    label := Label in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15349
    label sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15350
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15351
	label label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15352
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15353
    self createdWindowsView:label for:jLabelPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15355
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15356
	'WLabelPeer_create: ' print. frame print. ' -> ' print. label printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15357
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15359
    "Created: / 7.1.1998 / 21:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15360
    "Modified: / 13.1.1998 / 22:10:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15361
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15363
_WLabelPeer_setAlignment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15364
    |label alignNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15366
    alignNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15367
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15368
    label notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15369
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15371
    "Created: / 7.1.1998 / 21:43:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15372
    "Modified: / 8.1.1998 / 17:35:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15373
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15375
_WLabelPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15376
    |label jString str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15377
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15378
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15380
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15381
    jString notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15382
	str := Java as_ST_String:jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15383
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15384
    label label:str
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15386
    "Created: / 7.1.1998 / 21:43:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15387
    "Modified: / 3.12.1998 / 14:59:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15388
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15390
_WListPeer__addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15391
    |jString index1 length selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15393
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15395
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15396
    index1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15397
    length := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15399
    (m := selListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15400
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15401
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15402
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15403
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15404
    "Created: / 26.10.1998 / 20:11:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15405
    "Modified: / 14.11.1998 / 01:21:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15406
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15407
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15408
_WListPeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15409
    |jString index selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15411
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15413
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15414
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15416
    m := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15417
    m isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15418
	Transcript showCR:'JAVA: access to listModel of closed view'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15419
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15420
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15421
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15422
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15424
    "Created: / 24.1.1998 / 21:10:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15425
    "Modified: / 2.11.1998 / 17:12:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15426
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15428
_WListPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15429
    |jListPeer jFrame frame selectionInListView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15431
    jListPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15433
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15434
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15436
    selectionInListView := ScrollableView for:SelectionInListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15437
    selectionInListView action:[:index | jListPeer perform:#'handleListChanged(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15438
    selectionInListView doubleClickAction:[:index | jListPeer perform:#'handleAction(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15439
    selectionInListView model:(SelectionInList new list:(List new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15440
    selectionInListView useIndex:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15442
    self createdWindowsView:selectionInListView for:jListPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15444
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15445
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. selectionInListView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15446
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15448
    "Created: / 24.1.1998 / 19:58:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15449
    "Modified: / 9.4.1998 / 22:19:07 / cg"
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
_WListPeer_delItems:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15453
    |jString index1 index2 selListView model list|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15455
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15457
    index1 := (nativeContext argAt:1) + 1. "/ java indices are 0-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15458
    index2 := (nativeContext argAt:2) + 1. "/ st indices are 1-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15459
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15460
    model := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15461
    model isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15462
    list := model list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15463
    list size >= index1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15464
	list removeFromIndex:index1 toIndex:(index2 min:list size).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15465
	model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15466
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15468
    "Created: / 9.4.1998 / 22:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15469
    "Modified: / 30.12.1998 / 20:00:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15470
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15472
_WListPeer_deselect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15473
    "/ void deselect (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15474
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15476
    "Created: / 12.11.1998 / 19:15:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15477
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15479
_WListPeer_getMaxWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15480
    "/ int getMaxWidth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15481
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15482
    ^ 1000 "/ a dummy value
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15484
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15486
    "Created: / 14.11.1998 / 10:44:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15487
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15489
_WListPeer_isSelected:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15490
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15492
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15494
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15495
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15496
	(model selectionIndex == (index + 1))  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15497
	ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15498
	    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15499
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15500
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15501
    ^ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15503
    "Created: / 24.1.1998 / 22:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15504
    "Modified: / 25.1.1998 / 01:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15505
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15507
_WListPeer_makeVisible:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15508
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15509
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15510
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15512
    lineNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15514
    selectionInListView makeLineVisible:(lineNr + 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15516
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15517
    "Created: / 20.10.1998 / 14:14:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15518
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15520
_WListPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15521
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15523
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15525
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15526
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15527
	model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15528
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15530
    "Created: / 24.1.1998 / 22:32:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15531
    "Modified: / 25.1.1998 / 01:28:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15532
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15533
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15534
_WListPeer_setMultipleSelections:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15535
    |selectionInListView onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15537
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15539
    onOff := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15541
    selectionInListView multipleSelectOk:onOff.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15543
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15544
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15546
_WListPeer_updateMaxItemWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15547
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15549
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15551
    "Created: / 26.10.1998 / 20:09:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15552
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15554
_WMenuBarPeer_addMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15555
    "/ void addMenu (java.awt.Menu)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15556
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15558
    "Created: / 12.11.1998 / 19:14:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15559
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15561
_WMenuBarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15562
    |jMenuBarPeer jMenuBar jFrame frame menuBar|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15564
    jMenuBarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15565
    jMenuBar := jMenuBarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15567
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15568
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15570
    menuBar := MenuPanel in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15571
    menuBar verticalLayout:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15572
    menuBar realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15574
    self createdWindowsView:menuBar for:jMenuBarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15576
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15577
	'WMenuBarPeer_create: ' print. frame print. ' -> ' print. menuBar printNL.
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
    "Created: / 7.1.1998 / 21:38:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15581
    "Modified: / 25.1.1998 / 13:19:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15582
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15584
_WMenuBarPeer_delMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15585
    "/ void delMenu (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15586
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15587
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15588
    "Created: / 12.11.1998 / 19:14:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15589
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15591
_WMenuItemPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15592
    |jMenuItemPeer item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15594
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15595
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15597
"/ what should be done here ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15599
    "Created: / 29.3.1998 / 17:16:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15600
    "Modified: / 29.3.1998 / 17:16:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15601
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15603
_WMenuItemPeer__setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15604
    "/ void _setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15605
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15606
    |jMenuItemPeer item label|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15608
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15609
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15610
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15611
	'JAVA [warning]: NULL menu item in setLabel' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15612
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15613
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15614
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15615
    label := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15616
    label isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15617
	label := ''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15618
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15619
	label := Java as_ST_String:label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15620
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15621
    item label:label.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15622
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15623
    "Modified: / 11.12.1998 / 16:40:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15624
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15626
_WMenuItemPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15627
    |jMenuItemPeer jMenuItem jMenuPeer menu item lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15629
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15630
    jMenuItem := jMenuItemPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15632
    jMenuPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15633
    menu := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15634
    (menu isNil or:[menu == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15635
	'JAVA: no menu to create item in' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15636
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15637
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15638
    item := menu createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15639
    item value:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15640
		jMenuItemPeer perform:#'handleAction(I)V' with:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15641
	       ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15643
    lbl := jMenuItem instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15644
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15645
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15646
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15647
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15649
    jMenuItemPeer instVarNamed:'pData' put:item.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15651
    WindowOPTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15652
	'WMenuItem_create: ' print. menu print. ' -> ' print. item printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15653
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15655
    "Created: / 7.1.1998 / 21:40:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15656
    "Modified: / 3.12.1998 / 20:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15657
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15659
_WMenuItemPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15660
    |jMenuItemPeer item state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15662
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15663
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15664
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15665
	'JAVA [warning]: NULL menu item in enable' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15666
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15667
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15669
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15670
    item enabled:(state ~~ 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15672
    "Created: / 7.1.1998 / 22:41:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15673
    "Modified: / 11.12.1998 / 16:40:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15674
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15676
_WMenuPeer_addSeparator:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15677
    "/ void addSeparator ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15678
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15680
    "Created: / 12.11.1998 / 19:13:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15681
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15683
_WMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15684
    |jMenuPeer jMenu jMenuBarPeer menuPanel menu
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15685
     lbl item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15686
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15687
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15688
    jMenu := jMenuPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15690
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15691
    menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15692
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15693
    item := menuPanel createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15694
    lbl := jMenu instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15695
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15696
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15697
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15698
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15699
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15700
    menu := MenuPanel new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15701
    item submenu:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15703
    jMenuPeer instVarNamed:'pData' put:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15705
'createMenuPeer: ' print. menuPanel print. ' -> ' print. menu printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15706
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15707
    "Created: / 7.1.1998 / 21:39:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15708
    "Modified: / 13.1.1998 / 22:11:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15709
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15711
_WMenuPeer_createSubMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15712
    "/ void createSubMenu (sun.awt.windows.WMenuPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15713
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15715
    "Created: / 12.11.1998 / 19:13:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15716
    "Modified: / 3.12.1998 / 21:41:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15717
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15719
_WMenuPeer_delItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15720
    "/ void delItem (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15721
    |jMenuPeer jMenu menuPanel itemIndex|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15723
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15724
    menuPanel := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15725
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15726
    itemIndex := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15727
    menuPanel remove:itemIndex.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15729
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15730
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15731
    "Created: / 12.11.1998 / 19:13:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15732
    "Modified: / 10.12.1998 / 21:12:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15733
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15734
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15735
_WPanelPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15736
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15737
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15738
    "Created: / 27.1.1998 / 21:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15739
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15740
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15741
_WPopupMenuPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15742
    "/ void _show (java.awt.Event)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15743
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15745
    "Created: / 12.11.1998 / 19:12:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15746
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15748
_WPopupMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15749
    "/ void createMenu (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15750
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15752
    "Created: / 12.11.1998 / 19:12:43 / cg"
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
_WPrintJob_end:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15756
    "/ void end ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15757
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15758
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15759
    "Created: / 12.11.1998 / 19:11:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15760
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15761
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15762
_WScrollPanePeer__getHScrollbarHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15763
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15765
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15766
    ^ HorizontalScrollBar new preferredExtent y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15768
    "Created: / 9.4.1998 / 17:30:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15769
    "Modified: / 10.4.1998 / 14:59:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15770
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15772
_WScrollPanePeer__getVScrollbarWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15773
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15775
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15776
    ^ ScrollBar new preferredExtent x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15777
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15778
    "Created: / 9.4.1998 / 17:29:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15779
    "Modified: / 10.4.1998 / 15:00:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15780
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15782
_WScrollPanePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15783
    |jScrollPanePeer jScrollPane jFrame frame scrollPane
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15784
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15786
    jScrollPanePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15787
    jScrollPane := jScrollPanePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15789
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15790
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15792
    "/ create with a simple view ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15793
    scrollPane := ScrollableView for:JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15795
    self createdWindowsView:scrollPane for:jScrollPanePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15796
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15797
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15798
	'WScrollPanePeer_create: ' print. frame print. ' -> ' print. scrollPane printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15799
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15801
    "Created: / 9.4.1998 / 17:25:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15802
    "Modified: / 9.4.1998 / 22:06:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15803
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15805
_WScrollPanePeer_getOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15806
    "/ int getOffset (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15807
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15809
    "Created: / 12.11.1998 / 19:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15810
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15812
_WScrollPanePeer_getScrollChild:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15813
    "/ java.awt.Component getScrollChild ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15814
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15816
    "Created: / 12.11.1998 / 19:17:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15817
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15819
_WScrollPanePeer_setInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15821
    "Modified: / 9.4.1998 / 17:26:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15822
    "Created: / 9.4.1998 / 17:29:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15823
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15825
_WScrollPanePeer_setScrollPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15826
    "/ void setScrollPosition (int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15827
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15829
    "Created: / 12.11.1998 / 19:16:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15830
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15832
_WScrollPanePeer_setSpans:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15834
    "Created: / 9.4.1998 / 17:31:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15835
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15837
_WScrollbarPeer__setValues:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15838
    |scrollBar value visibleAmount min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15840
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15842
    value := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15843
    visibleAmount := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15844
    min := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15845
    max := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15846
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15847
    (min ~~ 0 or:[max ~~ 100]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15848
	scrollBar thumb start:min stop:max.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15849
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15850
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15851
    scrollBar thumbOrigin:value thumbHeight:visibleAmount.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15853
    "Created: / 13.1.1998 / 22:13:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15854
    "Modified: / 14.10.1998 / 14:53:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15855
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15857
_WScrollbarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15858
    |jScrollbarPeer jScrollbar jFrame frame scrollBar
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15859
     min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15861
    jScrollbarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15862
    jScrollbar := jScrollbarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15864
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15865
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15867
    (jScrollbar instVarNamed:'orientation') == 0 "HORIZONTAL" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15868
	scrollBar := HorizontalScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15869
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15870
	scrollBar := ScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15871
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15872
    min := jScrollbar instVarNamed:'minimum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15873
    max := jScrollbar instVarNamed:'maximum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15874
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15875
    scrollBar scrollDownAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15876
			scrollBar thumbOrigin:(scrollBar thumbOrigin + ((max-min)/10) min:max).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15877
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15878
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15879
    scrollBar scrollUpAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15880
			scrollBar thumbOrigin:(scrollBar thumbOrigin - ((max-min)/10) max:min).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15881
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15882
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15883
    scrollBar scrollAction:[:org |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15884
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:org rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15885
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15886
    self createdWindowsView:scrollBar for:jScrollbarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15888
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15889
	'WScrollbarPeer_create: ' print. frame print. ' -> ' print. scrollBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15890
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15892
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15893
    "Modified: / 14.10.1998 / 15:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15894
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15896
_WScrollbarPeer_setLineIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15897
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15898
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15899
Transcript showCR:'JavaVM: WScrollbarPeer_setLineIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15901
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15903
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15904
"/    scrollBar thumb lineIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15906
    "Created: / 25.1.1998 / 11:52:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15907
    "Modified: / 14.10.1998 / 14:53:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15908
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15910
_WScrollbarPeer_setPageIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15911
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15913
Transcript showCR:'JavaVM: WScrollbarPeer_setPageIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15915
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15916
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15917
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15918
"/    scrollBar thumb pageIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15920
    "Created: / 25.1.1998 / 11:52:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15921
    "Modified: / 14.10.1998 / 14:54:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15922
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15923
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15924
_WTextAreaPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15925
    |jTextAreaPeer jFrame frame editTextView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15927
    jTextAreaPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15929
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15930
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15932
    editTextView := HVScrollableView for:EditTextView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15933
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15934
    self createdWindowsView:editTextView for:jTextAreaPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15936
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15937
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. editTextView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15938
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15940
    "Created: / 7.1.1998 / 21:49:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15941
    "Modified: / 15.1.1998 / 12:56:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15942
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15944
_WTextAreaPeer_insertText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15945
    |textView pos string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15947
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15948
    (textView isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15949
	textView := textView scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15950
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15951
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15952
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15953
    string := Java as_ST_String:jstring.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15954
    pos := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15956
    textView insert:string at:pos.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15957
    textView cursorToCharacterPosition:pos + string size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15958
    textView makeCursorVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15959
"/ textView invalidateRepairNow:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15960
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15962
    "Created: / 7.1.1998 / 21:50:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15963
    "Modified: / 5.4.1998 / 17:37:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15964
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15966
_WTextAreaPeer_replaceText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15967
    "/ void replaceText (java.lang.String int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15968
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15969
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15970
    "Created: / 12.11.1998 / 19:11:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15971
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15973
_WTextComponentPeer_enableEditing:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15974
    |textView enabled|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15976
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15977
    enabled := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15979
    ^ textView readOnly:enabled not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15980
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15981
    "Created: / 5.1.1998 / 01:29:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15982
    "Modified: / 25.1.1998 / 16:29:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15983
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15985
_WTextComponentPeer_getSelectionEnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15986
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15988
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15989
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15990
    ^ textView characterPositionOfSelectionEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15991
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15992
    "Created: / 8.1.1998 / 17:41:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15993
    "Modified: / 15.1.1998 / 15:47:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15994
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15996
_WTextComponentPeer_getSelectionStart:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15997
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15998
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15999
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16000
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16001
    ^ textView characterPositionOfSelection - 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16003
    "Created: / 15.8.1997 / 15:45:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16004
    "Modified: / 15.1.1998 / 15:46:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16005
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16007
_WTextComponentPeer_getText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16008
    |textView string jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16009
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16010
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16011
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16012
    string := textView contents asString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16013
    jString := Java as_String:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16014
    ^ jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16016
    "Created: / 6.1.1998 / 21:05:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16017
    "Modified: / 8.1.1998 / 17:36:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16018
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16020
_WTextComponentPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16021
    |textView selStart selEnd|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16023
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16024
    selStart := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16025
    selEnd := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16026
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16027
    selStart == selEnd ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16028
	"/ clear selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16029
	textView unselect.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16030
	"/ and set caret
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16031
	textView cursorToCharacterPosition:selStart + 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16032
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16033
	"/ change selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16034
	textView selectFromCharacterPosition:selStart+1 to:selEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16035
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16036
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16037
    "Created: / 15.8.1997 / 15:45:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16038
    "Modified: / 15.1.1998 / 21:55:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16039
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16040
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16041
_WTextComponentPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16042
    |textView string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16044
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16045
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16046
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16047
    jstring notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16048
	string := Java as_ST_String:jstring
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16049
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16051
    textView contents:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16052
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16053
    "Created: / 5.1.1998 / 01:28:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16054
    "Modified: / 11.12.1998 / 12:16:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16055
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16056
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16057
_WTextFieldPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16058
    |jTextFieldPeer jFrame frame editField|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16059
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16060
    jTextFieldPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16062
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16063
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16065
    editField := EditField in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16067
    self createdWindowsView:editField for:jTextFieldPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16069
    editField crAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16070
			jTextFieldPeer perform:#handleAction.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16071
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16072
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16073
	'WTextFieldPeer_create: ' print. frame print. ' -> ' print. editField printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16074
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16076
    "Created: / 5.1.1998 / 01:27:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16077
    "Modified: / 4.11.1998 / 21:07:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16080
_WTextFieldPeer_setEchoCharacter:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16081
    |editField char|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16083
    editField := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16085
    char := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16086
    editField passwordCharacter:(Character value:char).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16087
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16088
    "Created: / 25.1.1998 / 16:28:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16089
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16090
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16091
_WToolkit_beep:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16092
    "/ void beep ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16094
    Screen current beep
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16095
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16096
    "Created: / 12.11.1998 / 19:09:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16097
    "Modified: / 11.12.1998 / 12:15:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16098
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16099
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16100
_WToolkit_eventLoop:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16101
    (JavaEventThread notNil and:[JavaEventThread isDead not]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16102
	'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16103
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16105
    JavaEventThread := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16106
    [
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16107
	[true] whileTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16108
	    AbortSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16109
		ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16110
	    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16111
		self doWindowsEventThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16112
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16113
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16114
    ] valueNowOrOnUnwindDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16115
	JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16116
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16118
    "Created: / 6.1.1998 / 21:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16119
    "Modified: / 8.1.1999 / 17:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16120
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16122
_WToolkit_getComboHeightOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16123
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16125
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16126
    "Created: / 22.10.1998 / 00:59:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16127
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16129
_WToolkit_getScreenHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16130
    ^ Screen current height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16131
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16132
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16133
    "Created: / 13.1.1998 / 09:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16134
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16136
_WToolkit_getScreenResolution:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16137
    ^ Screen current resolution x rounded
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16139
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16140
    "Created: / 17.1.1998 / 21:54:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16141
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16143
_WToolkit_getScreenWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16144
    ^ Screen current width
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16146
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16147
    "Created: / 13.1.1998 / 09:24:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16148
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16150
_WToolkit_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16152
    "Created: / 3.1.1998 / 02:30:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16153
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16155
_WToolkit_loadSystemColors:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16156
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16158
    "Modified: / 18.3.1997 / 18:43:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16159
    "Created: / 5.1.1998 / 02:19:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16160
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16162
_WToolkit_makeColorModel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16163
    "/ java.awt.image.ColorModel makeColorModel ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16164
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16166
    "Created: / 12.11.1998 / 19:08:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16167
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16169
_WToolkit_sync:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16170
    "/ void sync ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16171
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16172
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16173
    "Created: / 12.11.1998 / 19:09:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16174
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16176
_WWindowPeer__setResizable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16177
    |view onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16179
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16180
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16181
    onOff := (nativeContext argAt:1) == 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16182
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16183
	onOff ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16184
	    view minExtent:10@10.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16185
	    view maxExtent:(Screen current extent).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16186
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16187
	    view minExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16188
	    view maxExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16189
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16190
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16191
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16192
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16193
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16194
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16196
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16198
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16200
    "Created: / 5.1.1998 / 00:57:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16201
    "Modified: / 16.1.1998 / 18:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16202
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16204
_WWindowPeer__setTitle:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16205
    |view jString string|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16207
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16209
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16210
    string := Java as_ST_String:jString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16212
"/ 'JAVA: WWindowPeer_pSetTitle: ' print. string print. ' ' print. view printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16213
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16214
    view label:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16215
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16217
    "Created: / 5.1.1998 / 00:57:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16218
    "Modified: / 8.1.1998 / 17:37:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16219
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16221
_WWindowPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16222
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16223
    |jWindowPeer jWindow top window pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16224
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16225
    jWindowPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16227
    jWindow := jWindowPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16228
    window := jWindowPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16230
    (window notNil and:[window ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16231
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16232
	    'JAVA: window view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16233
	    jWindowPeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16234
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16235
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16236
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16237
"/        window := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16238
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16239
"/        JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16241
	window := JavaPopUpView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16242
	window borderWidth:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16243
	window level:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16244
	window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16245
	window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16246
	self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16247
	JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16249
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16250
"/        window := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16251
"/        window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16252
"/        window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16253
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16254
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16256
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16258
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16259
	'JAVA: WWindowPeer_create: ' print. jWindowPeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16260
	' window: ' print. window printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16261
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16263
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16264
    "Modified: / 4.12.1998 / 17:37:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16265
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16267
_WWindowPeer_getContainerElement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16268
    "/ java.awt.Component getContainerElement (java.awt.Container int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16269
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16271
    "Created: / 12.11.1998 / 19:10:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16272
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16273
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16274
_WWindowPeer_toBack:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16275
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16277
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16278
    view lower.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16280
    "Created: / 7.5.1998 / 00:23:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16281
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16283
_WWindowPeer_toFront:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16284
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16286
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16287
    view raise.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16289
    "Created: / 9.4.1998 / 22:17:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16290
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16292
_WWindowPeer_updateInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16293
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16295
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16296
    "Created: / 4.1.1998 / 18:09:04 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16297
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16299
_Win32Process_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16300
    "really create a win32 process"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16301
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16302
    |env cmd jProcess p inPipe outPipe errorPipe|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16304
    jProcess := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16305
    cmd := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16306
    cmd := Java as_ST_String:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16307
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16308
    env := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16309
    env notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16310
	self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16311
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16312
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16313
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16314
    p := Win32Process new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16315
    p command:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16316
    p environment:env.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16317
    p inStream:inPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16318
    p outStream:outPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16319
    p errorStream:errorPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16320
    p directory:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16321
    p startProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16322
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16324
    jProcess instVarNamed:'handle' put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16325
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16326
    "Created: / 10.11.1998 / 19:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16327
    "Modified: / 10.11.1998 / 21:34:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16328
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16329
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16330
_X11FontMetrics_getMFCharSegmentWidth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16331
    "get multi-font string-segment width.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16332
     Not yet supported - use standard strings width"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16334
    |jMetrics jFont jFontDescr stFont w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16335
     bool1 cp offs lenght bp int1|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16337
    jMetrics := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16338
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16339
    jFontDescr := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16340
    cp := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16341
    lenght := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16342
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16343
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16344
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16345
        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16346
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16348
    stFont device isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16349
        stFont := stFont on:Display.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16350
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16351
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16352
    w := stFont widthOf:cp from:1 to:lenght.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16353
    ^ w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16354
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16355
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16356
_X11FontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16357
    ^ self _WFontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16358
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16359
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16360
_X11GraphicsDevice_getConfigType:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16361
    "/ new with jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16362
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16363
    |configNr cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16365
    "/ for now, only one config.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16366
    configNr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16367
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16368
    cls := Java classNamed:'java.awt.GraphicsDevice'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16369
    ^ cls instVarNamed:'TYPE_RASTER_SCREEN'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16370
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16371
    "Created: / 28.1.1998 / 22:19:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16372
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16374
_X11GraphicsDevice_getNumConfigs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16375
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16377
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16379
    "Created: / 28.1.1998 / 22:13:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16380
    "Modified: / 28.1.1998 / 22:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16381
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16382
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16383
_X11GraphicsEnvironment_getNumScreens:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16384
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16385
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16386
    "/ could return the actual number of screens ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16387
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16388
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16389
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16390
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16391
    "Modified: / 28.1.1998 / 22:12:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16392
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16394
_X11GraphicsEnvironment_initDisplay:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16395
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16397
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16398
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16400
_X11Graphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16401
    ^ self _WGraphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16402
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16404
_X11Graphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16405
    ^ self _WGraphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16406
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16407
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16408
_X11Graphics_disposeImpl:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16409
    ^ self _WGraphics_dispose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16410
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16412
_X11Graphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16413
    ^ self _WGraphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16414
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16415
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16416
_X11Graphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16417
    ^ self _WGraphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16418
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16419
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16420
_X11Graphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16421
    ^ self _WGraphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16422
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16423
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16424
_X11Graphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16425
    ^ self _WGraphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16426
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16428
_X11Graphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16429
    ^ self _WGraphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16430
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16431
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16432
_X11Graphics_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16433
    ^ self _WGraphics_pSetForeground:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16434
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16435
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16436
!JavaVM class methodsFor:'native - old-style (converted)'!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16437
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16438
_FileInputStream_skip:nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16439
    "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16440
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16441
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16442
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16443
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16444
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16445
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16446
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16447
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16448
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16449
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16450
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16451
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16452
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16453
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16454
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16455
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16456
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16457
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16458
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16459
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16460
! !
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16461
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16462
!JavaVM class methodsFor:'native - stx.libjava'!
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16463
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16464
_stx_libjava_ClassLoader_findClassS: nativeContext
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16465
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16466
    <javanative: 'stx/libjava/ClassLoader' name: 'findCla'>
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16467
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16468
    | nm cls |
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16469
    nm := Java as_ST_String: (nativeContext argAt: 1).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16470
    (nm startsWith: 'SMALLTALK.') ifFalse:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16471
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16472
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16473
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16474
    nm := nm copyFrom: 'SMALLTALK.' size + 1.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16475
    cls := Smalltalk at: nm asSymbol.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16476
    cls isNil ifTrue:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16477
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16478
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16479
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16480
    ^Reflection javaClassObjectForClass: cls.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16481
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16482
    "Modified: / 30-07-2012 / 23:19:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16483
! !
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16484
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16485
!JavaVM class methodsFor:'native - stx.libjava.groovy'!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16486
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16487
_stx_libjava_groovy_GroovyClassLoader_SystemClassCollector_getDefiningClassLoader: nativeContext
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16488
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16489
    <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
 16490
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16491
    ^ SystemClassLoader
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16492
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16493
    "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
 16494
! !
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16495
1090
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16496
!JavaVM class methodsFor:'native - stx.libjava.tests'!
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16497
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16498
_stx_libjava_tests_MonitorTests_abort: nativeContext
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16499
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16500
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16501
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16502
    AbortOperationRequest raiseRequest.
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16503
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16504
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16505
! !
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16506
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16507
!JavaVM class methodsFor:'native - stx.libjava.tests.lang'!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16508
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16509
_stx_libjava_tests_lang_MonitorTests_abort: nativeContext
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16510
    <javanative: 'stx/libjava/tests/lang/MonitorTests' name: 'abort()V'>
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16511
        AbortOperationRequest raiseRequest.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16512
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16513
    "Modified: / 10-09-2012 / 22:56:16 / m"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16514
! !
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16515
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16516
!JavaVM class methodsFor:'native - stx.libjava.tests.vm'!
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16517
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16518
_stx_libjava_tests_vm_XLOAD_forcePatchupAndUnfix: nativeContext
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16519
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16520
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16521
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16522
    | ctx |
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16523
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16524
    ctx := thisContext.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16525
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16526
    ObjectMemory garbageCollect.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16527
    [ ctx notNil ] whileTrue:[
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16528
        1 to: ctx size do:[:i|
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16529
                Transcript showCR: i printString , ' -> ', (ctx at: i) printString.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16530
        ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16531
        ctx := ctx sender.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16532
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16533
    ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16534
    ObjectMemory garbageCollect.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16535
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16536
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16537
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16538
! !
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16539
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16540
!JavaVM class methodsFor:'native - sun.font'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16541
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16542
_sun_font_FontManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16543
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16544
    <javanative: 'sun/font/FontManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16545
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16546
    "Modified: / 09-02-2012 / 22:56:51 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16547
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16548
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16549
_sun_font_FreetypeFontScaler_initIDs: nativeContext
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16550
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16551
    <javanative: 'sun/font/FreetypeFontScaler' name: 'initIDs(Ljava/lang/Class;)V'>
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16552
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16553
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16554
!
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16555
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16556
_sun_font_StrikeCache_getGlyphCacheDescription: nativeContext
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16557
    <javanative: 'sun/font/StrikeCache' name: 'getGlyphCacheDescription([J)V'>
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16558
    (nativeContext argAt:1) at: 1 put: 4.
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16559
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16560
    "Modified: / 09-02-2012 / 22:57:08 / mh <hlopik@gmail.com>"
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16561
    "Modified: / 05-11-2012 / 17:07:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16562
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16563
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16564
!JavaVM class methodsFor:'native - sun.io'!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16565
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16566
_sun_io_Win32ErrorMode_setErrorMode: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16567
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16568
    <javanative: 'sun/io/Win32ErrorMode' name: 'setErrorMode(J)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16569
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16570
    "FIXME: Ignored for now"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16571
    ^0
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16572
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16573
    "Modified (format): / 14-08-2012 / 11:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16574
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16575
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16576
!JavaVM class methodsFor:'native - sun.java2d'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16577
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16578
_sun_java2d_Disposer_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16579
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16580
    <javanative: 'sun/java2d/Disposer' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16581
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16582
    "Modified: / 09-02-2012 / 22:54:59 / mh <hlopik@gmail.com>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16583
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16584
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16585
!JavaVM class methodsFor:'native - sun.java2d.cmm.lcms'!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16586
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16587
_sun_java2d_cmm_lcms_LCMS_getTagData: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16588
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16589
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagData(JI[B)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16590
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16591
    | profileId tag data |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16592
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16593
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16594
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16595
    data := nativeContext argAt: 4.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16596
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16597
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16598
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16599
    tag = 1751474532 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16600
        data replaceBytesFrom:1
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16601
                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
 16602
                startingAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16603
        ^self.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16604
    ].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16605
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16606
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16607
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16608
    "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
 16609
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16610
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16611
_sun_java2d_cmm_lcms_LCMS_getTagSize: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16612
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16613
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagSize(JI)I'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16614
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16615
    | profileId tag |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16616
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16617
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16618
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16619
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16620
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16621
    "Magic numbers based on trace of real Java code"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16622
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16623
    tag = 1751474532 ifTrue:[ ^ 128 ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16624
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16625
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16626
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16627
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16628
    ^128 "Some magic default"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16629
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16630
    "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
 16631
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16632
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16633
_sun_java2d_cmm_lcms_LCMS_initLCMS: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16634
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16635
    <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
 16636
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16637
    "Nothing to do"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16638
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16639
    "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
 16640
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16641
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16642
_sun_java2d_cmm_lcms_LCMS_loadProfile: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16643
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16644
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'loadProfile([B)J'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16645
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16646
    "FAKE, return some magic"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16647
    ^12344321
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16648
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16649
    "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
 16650
! !
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16651
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16652
!JavaVM class methodsFor:'native - sun.java2d.pipe'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16653
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16654
_sun_java2d_pipe_Region_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16655
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16656
    <javanative: 'sun/java2d/pipe/Region' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16657
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16658
    "Modified: / 09-02-2012 / 22:55:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16659
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16660
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16661
!JavaVM class methodsFor:'native - sun.management'!
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16662
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16663
_sun_management_MemoryImpl_getMemoryManagers0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16664
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16665
    <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
 16666
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16667
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16668
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16669
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16670
    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
 16671
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16672
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16673
    "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
 16674
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16675
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16676
_sun_management_MemoryImpl_getMemoryPools0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16677
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16678
    <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
 16679
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16680
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16681
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16682
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16683
    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
 16684
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16685
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16686
    "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
 16687
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16688
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16689
_sun_management_VMManagementImpl_getStartupTime: nativeContext
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16690
    <javanative: 'sun/management/VMManagementImpl' name: 'getStartupTime()J'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16691
    ^ StartupTime.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16692
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16693
    "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
 16694
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16695
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16696
_sun_management_VMManagementImpl_getVersion0: nativeContext
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16697
    <javanative: 'sun/management/VMManagementImpl' name: 'getVersion0'>
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16698
    ^ Java as_String: '1.2'.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16699
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16700
    "Modified: / 03-11-2011 / 18:42:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16701
!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16702
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16703
_sun_management_VMManagementImpl_initOptionalSupportFields: nativeContext
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16704
    <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
 16705
    | cls |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16706
    cls := nativeContext receiver.
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16707
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16708
    cls instVarNamed: #compTimeMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16709
    cls instVarNamed: #threadContentionMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16710
    cls instVarNamed: #currentThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16711
    cls instVarNamed: #otherThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16712
    cls instVarNamed: #bootClassPathSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16713
    cls instVarNamed: #synchronizerUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16714
    cls instVarNamed: #objectMonitorUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16715
    ^ self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16716
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16717
    "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
 16718
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16719
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16720
_sun_management_VMManagementImpl_isThreadCpuTimeEnabled: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16721
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16722
    <javanative: 'sun/management/VMManagementImpl' name: 'isThreadCpuTimeEnabled()Z'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16723
1083
vranyj1
parents: 1081
diff changeset
 16724
    ^ 0 "/false should be safe, we'll see...
vranyj1
parents: 1081
diff changeset
 16725
vranyj1
parents: 1081
diff changeset
 16726
    "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
 16727
! !
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16728
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16729
!JavaVM class methodsFor:'native - sun.misc'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16730
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16731
_sun_misc_GC_maxObjectInspectionAge: nativeContext
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16732
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16733
    <javanative: 'sun/misc/GC' name: 'maxObjectInspectionAge()J'>
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16734
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16735
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16736
    /**
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16737
     * Returns the maximum <em>object-inspection age</em>, which is the number
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16738
     * of real-time milliseconds that have elapsed since the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16739
     * least-recently-inspected heap object was last inspected by the garbage
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16740
     * collector.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16741
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16742
     * <p> For simple stop-the-world collectors this value is just the time
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16743
     * since the most recent collection.  For generational collectors it is the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16744
     * time since the oldest generation was most recently collected.  Other
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16745
     * collectors are free to return a pessimistic estimate of the elapsed
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16746
     * time, or simply the time since the last full collection was performed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16747
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16748
     * <p> Note that in the presence of reference objects, a given object that
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16749
     * is no longer strongly reachable may have to be inspected multiple times
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16750
     * before it can be reclaimed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16751
     */
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16752
    public static native long maxObjectInspectionAge();
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16753
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16754
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16755
    ^Random nextIntegerBetween: 0 and: 3600. "Just return some number"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16756
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16757
    "Modified: / 02-12-2011 / 21:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16758
!
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16759
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16760
_sun_misc_Signal_findSignal: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16762
    <javanative: 'sun/misc/Signal' name: 'findSignal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16763
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16764
        | input signame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16765
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16766
    input := Java as_ST_String: (aJavaContext argAt: 1).
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16767
    OperatingSystem isUNIXlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16768
        signame := 'SIG', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16769
        ^UnixOperatingSystem signalNamed: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16770
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16771
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16772
        signame := 'sig', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16773
        ^Win32OperatingSystem perform: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16774
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16775
    self error: 'Unsupported OS'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16776
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16777
    "Created: / 11-12-2010 / 15:22:07 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16778
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16779
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16780
_sun_misc_Signal_handle0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16782
    <javanative: 'sun/misc/Signal' name: 'handle0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16783
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16784
        self breakPoint: #libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16785
    ^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16787
    "Created: / 11-12-2010 / 16:33:38 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16788
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16789
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16790
_sun_misc_Unsafe_addressSize: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16791
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16792
    <javanative: 'sun/misc/Unsafe' name: 'addressSize()I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16793
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16794
    ^ExternalAddress pointerSize
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16795
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16796
    "Modified: / 10-07-2012 / 01:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16797
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16798
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16799
_sun_misc_Unsafe_allocateInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16800
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16801
    <javanative: 'sun/misc/Unsafe' name: 'allocateInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16802
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16803
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16804
    /** Allocate an instance but do not run any constructor.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16805
        Initializes the class if it has not yet been. */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16806
    public native Object allocateInstance(Class cls)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16807
        throws InstantiationException;
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16808
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16809
    | cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16810
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16811
    cls classInit.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16812
    ^cls newCleared
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16813
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16814
    "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
 16815
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16816
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16817
_sun_misc_Unsafe_allocateMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16818
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16819
    <javanative: 'sun/misc/Unsafe' name: 'allocateMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16820
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16821
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16822
    | size |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16823
    size := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16824
    ^SimulatedNativeMemory malloc: size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16825
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16826
    "Created: / 07-12-2010 / 21:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16827
    "Modified: / 07-12-2010 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16828
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16829
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16830
_sun_misc_Unsafe_arrayBaseOffset: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16831
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16832
    <javanative: 'sun/misc/Unsafe' name: 'arrayBaseOffset'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16833
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16834
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16835
    * Report the offset of the first element in the storage allocation of a
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16836
    * given array class.  If {@link #arrayIndexScale} returns a non-zero value
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16837
    * for the same class, you may use that scale factor, together with this
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16838
    * base offset, to form new offsets to access elements of arrays of the
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16839
    * given class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16840
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16841
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16842
    * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16843
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16844
    public native int arrayBaseOffset(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16845
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16846
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16847
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16848
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16849
    "Modified (comment): / 10-08-2011 / 01:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16850
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16851
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16852
_sun_misc_Unsafe_arrayIndexScale: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16853
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16854
    <javanative: 'sun/misc/Unsafe' name: 'arrayIndexScale'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16855
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16856
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16857
      /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16858
      * Report the scale factor for addressing elements in the storage
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16859
      * allocation of a given array class.  However, arrays of 'narrow' types
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16860
      * will generally not work properly with accessors like {@link
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16861
      * #getByte(Object, int)}, so the scale factor for such classes is reported
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16862
      * as zero.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16863
      *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16864
      * @see #arrayBaseOffset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16865
      * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16866
      * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16867
      */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16868
    public native int arrayIndexScale(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16869
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16870
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16871
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16872
    "Modified: / 10-08-2011 / 01:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16873
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16874
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16875
_sun_misc_Unsafe_compareAndSwapInt: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16876
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16877
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16878
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16879
    ^self _sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16880
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16881
    "Created: / 22-11-2010 / 18:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16882
    "Modified: / 07-08-2011 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16883
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16884
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16885
_sun_misc_Unsafe_compareAndSwapLong: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16886
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16887
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapLong'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16888
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16889
        "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16890
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16891
     * Atomically update Java variable to <tt>x</tt> if it is currently
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16892
     * holding <tt>expected</tt>.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16893
     * @return <tt>true</tt> if successful
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16894
     */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16895
    public final native boolean compareAndSwapInt(Object o, long offset,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16896
                                                  long expected,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16897
                                                  long new);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16898
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16899
    | o offset expected real new ok |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16900
    o := aJavaContext argAt:1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16901
    offset := aJavaContext argAt:2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16902
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16903
    expected := aJavaContext argAt:4.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16904
    new := aJavaContext argAt:6.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16905
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16906
    OperatingSystem blockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16907
    real := o instVarAt: offset.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16908
    (real == expected)
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16909
            ifTrue:[o instVarAt: offset put: new. ok := 1]
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16910
            ifFalse:[ok := 1].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16911
    OperatingSystem unblockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16912
    ^ok
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16913
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16914
    "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
 16915
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16916
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16917
_sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16918
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16919
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16920
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16921
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16922
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16923
     * Atomically update Java variable to <tt>x</tt> if it is currently
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16924
     * holding <tt>expected</tt>.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16925
     * @return <tt>true</tt> if successful
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16926
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16927
    public final native boolean compareAndSwapInt(Object o, long offset,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16928
                                                  int expected,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16929
                                                  int new);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16930
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16931
    | o offset expected real new ok |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16932
    o := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16933
    offset := aJavaContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16934
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16935
    expected := aJavaContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16936
    new := aJavaContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16937
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16938
    OperatingSystem blockInterrupts.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16939
    o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16940
        real := o at: offset.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16941
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16942
        real := o instVarAt: offset.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16943
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16944
    (real == expected) ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16945
        o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16946
            o at: offset put: new.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16947
        ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16948
            o instVarAt: offset put: new.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16949
        ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16950
        ok := 1
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16951
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16952
        ok := 0
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16953
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16954
    OperatingSystem unblockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16955
    ^ok
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16956
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16957
    "Modified: / 03-09-2012 / 19:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16958
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16959
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16960
_sun_misc_Unsafe_copyMemory: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16961
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16962
    /**
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16963
     * 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
 16964
     * block.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16965
     */
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16966
    public native void copyMemory(long srcAddress, long destAddress,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16967
                                  long bytes);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16968
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16969
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16970
    <javanative: 'sun/misc/Unsafe' name: 'copyMemory(JJJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16971
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16972
    | srcAddress dstAddress bytes |
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16973
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16974
    srcAddress := nativeContext argAt:1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16975
    dstAddress := nativeContext argAt:3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16976
    bytes      := nativeContext argAt:5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16977
    SimulatedNativeMemory bcopy: srcAddress to: dstAddress length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16978
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16979
    "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
 16980
!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16981
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16982
_sun_misc_Unsafe_defineClass: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16983
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16984
    <javanative: 'sun/misc/Unsafe' name: 'defineClass'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16985
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16986
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16987
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16988
     * Tell the VM to define a class, without security checks.  By default, the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16989
     * class loader and protection domain come from the caller's class.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16990
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16991
    public native Class defineClass(String name, byte[] b, int off, int len,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16992
                                    ClassLoader loader,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16993
                                    ProtectionDomain protectionDomain);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16994
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16995
    | name b off len loader protectionDomain bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16996
    name := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16997
    b := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16998
    off := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16999
    len := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17000
    loader := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17001
    protectionDomain := nativeContext argAt: 6.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17002
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17003
    bs := (off = 0 and: [len = b size])
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17004
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17005
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17006
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17007
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17008
    cls classLoader: loader.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17009
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17010
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17011
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17012
    "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
 17013
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17014
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17015
_sun_misc_Unsafe_ensureClassInitialized: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17017
    <javanative: 'sun/misc/Unsafe' name: 'ensureClassInitialized'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17018
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17019
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17020
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17021
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17022
     "Sometimes there is a nil. I don't know why, so I did quickfix"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17023
    self breakPoint:#libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17024
    class ifNotNil:[class classInit.].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17026
    "Created: / 11-12-2010 / 15:01:36 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17027
    "Modified: / 25-12-2010 / 09:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17028
    "Modified: / 08-01-2011 / 15:11:21 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17029
    "Modified: / 28-01-2011 / 15:19:31 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17030
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17032
_sun_misc_Unsafe_freeMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17034
    <javanative: 'sun/misc/Unsafe' name: 'freeMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17035
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17036
    | address  |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17037
    address := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17038
    ^SimulatedNativeMemory free: address
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17039
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17040
    "Created: / 09-12-2010 / 17:56:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17041
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17042
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17043
_sun_misc_Unsafe_getBoolean: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17044
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17045
    <javanative: 'sun/misc/Unsafe' name: 'getBoolean(Ljava/lang/Object;J)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17046
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17047
    | o offset |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17048
    o := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17049
    offset := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17050
    ^o instVarAt: offset
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17051
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17052
    "Modified: / 19-11-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17053
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17054
1151
vranyj1
parents: 1150
diff changeset
 17055
_sun_misc_Unsafe_getByte: nativeContext
vranyj1
parents: 1150
diff changeset
 17056
vranyj1
parents: 1150
diff changeset
 17057
    <javanative: 'sun/misc/Unsafe' name: 'getByte(Ljava/lang/ObjectJ)B'>
vranyj1
parents: 1150
diff changeset
 17058
    <javanative: 'sun/misc/Unsafe' name: 'getByte(J)B'>
vranyj1
parents: 1150
diff changeset
 17059
vranyj1
parents: 1150
diff changeset
 17060
    | object offset address |
vranyj1
parents: 1150
diff changeset
 17061
    nativeContext numArgs == 3 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17062
        "getByte(Ljava/lang/Object;J)V"
vranyj1
parents: 1150
diff changeset
 17063
        object := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17064
        offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17065
        ^object instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17066
    ].
vranyj1
parents: 1150
diff changeset
 17067
    nativeContext numArgs == 2 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17068
        "getByte(J)V"
vranyj1
parents: 1150
diff changeset
 17069
        address := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17070
        ^SimulatedNativeMemory byteAt: address
vranyj1
parents: 1150
diff changeset
 17071
    ].
vranyj1
parents: 1150
diff changeset
 17072
vranyj1
parents: 1150
diff changeset
 17073
    self internalError:'Unssuported getByte() variant'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17075
    "Created: / 09-12-2010 / 17:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17076
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17077
1151
vranyj1
parents: 1150
diff changeset
 17078
_sun_misc_Unsafe_getChar: nativeContext
vranyj1
parents: 1150
diff changeset
 17079
vranyj1
parents: 1150
diff changeset
 17080
    <javanative: 'sun/misc/Unsafe' name: 'getChar(Ljava/lang/Object;J)C'>
vranyj1
parents: 1150
diff changeset
 17081
vranyj1
parents: 1150
diff changeset
 17082
    | o offset |
vranyj1
parents: 1150
diff changeset
 17083
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17084
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17085
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17086
vranyj1
parents: 1150
diff changeset
 17087
    "Modified: / 22-11-2011 / 14:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17088
!
vranyj1
parents: 1150
diff changeset
 17089
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17090
_sun_misc_Unsafe_getDouble: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17091
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17092
    <javanative: 'sun/misc/Unsafe' name: 'getDouble(Ljava/lang/Object;J)D'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17093
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17094
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17095
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17096
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17097
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17098
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17099
    "Modified: / 10-05-2012 / 17:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17100
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17101
1151
vranyj1
parents: 1150
diff changeset
 17102
_sun_misc_Unsafe_getFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 17103
vranyj1
parents: 1150
diff changeset
 17104
    <javanative: 'sun/misc/Unsafe' name: 'getFloat(Ljava/lang/Object;J)F'>
vranyj1
parents: 1150
diff changeset
 17105
vranyj1
parents: 1150
diff changeset
 17106
    | o offset |
vranyj1
parents: 1150
diff changeset
 17107
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17108
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17109
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17110
vranyj1
parents: 1150
diff changeset
 17111
    "Modified: / 22-11-2011 / 14:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17112
!
vranyj1
parents: 1150
diff changeset
 17113
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17114
_sun_misc_Unsafe_getFloatVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17115
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17116
    <javanative: 'sun/misc/Unsafe' name: 'getFloatVolatile(Ljava/lang/Object;J)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17117
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17118
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17119
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17120
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17121
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17122
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17123
    "Modified: / 10-05-2012 / 17:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17124
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17125
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17126
_sun_misc_Unsafe_getInt: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17127
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17128
    <javanative: 'sun/misc/Unsafe' name: 'getInt'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17129
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17130
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17131
    * Fetches a integer value from a given Java variable.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17132
    */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17133
    public native int getInt(Object o, long offset);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17134
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17135
    | o offset |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17136
    o := nativeContext argAt: 1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17137
    offset := nativeContext argAt: 2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17138
    ^o instVarAt: offset
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17139
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17140
    "Modified: / 18-10-2011 / 20:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17141
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17142
1433
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17143
_sun_misc_Unsafe_getIntVolatile: nativeContext
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17144
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17145
    <javanative: 'sun/misc/Unsafe' name: 'getIntVolatile(Ljava/lang/Object;J)I'>
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17146
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17147
    | o offset |
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17148
    o := nativeContext argAt: 1.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17149
    offset := nativeContext argAt: 2.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17150
    ^o instVarAt: offset
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17151
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17152
    "Modified: / 28-03-2012 / 15:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17153
!
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17154
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17155
_sun_misc_Unsafe_getLong: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17156
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17157
    <javanative: 'sun/misc/Unsafe' name: 'getLong(Ljava/lang/Object;J)J'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17158
1680
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17159
    | o offset |
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17160
    o := nativeContext argAt: 1.
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17161
    offset := nativeContext argAt: 2.
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17162
    ^o instVarAt: offset
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17163
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17164
    "Modified: / 25-08-2012 / 11:15:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17165
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17166
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17167
_sun_misc_Unsafe_getLongVolatile: nativeContext
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17168
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17169
    <javanative: 'sun/misc/Unsafe' name: 'getLongVolatile(Ljava/lang/Object;J)J'>
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17170
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17171
    | o offset |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17172
    o := nativeContext argAt: 1.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17173
    offset := nativeContext argAt: 2.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17174
    ^o instVarAt: offset
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17175
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17176
    "Modified: / 31-08-2011 / 23:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17177
!
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17178
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17179
_sun_misc_Unsafe_getObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17180
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17181
    <javanative: 'sun/misc/Unsafe' name: 'getObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17182
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17183
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17184
    * Fetches a reference value from a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17185
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17186
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17187
    public native Object getObject(Object o, long offset);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17188
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17189
    | o offset |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17190
    o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17191
    offset := nativeContext argAt: 2.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17192
    ^o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17193
        o at: offset
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17194
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17195
        o instVarAt: offset
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17196
    ]
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17197
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17198
    "Modified: / 03-09-2012 / 19:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17199
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17200
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17201
_sun_misc_Unsafe_getObjectVolatile: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17202
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17203
    <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
 17204
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17205
    /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17206
    * Fetches a reference value from a given Java variable, with volatile
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17207
    * load semantics. Otherwise identical to {@link #getObject(Object, long)}
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17208
    */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17209
    public native Object getObjectVolatile(Object o, long offset);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17210
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17211
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17212
    ^self _sun_misc_Unsafe_getObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17213
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17214
    "Modified: / 03-09-2012 / 19:00:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17215
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17216
1151
vranyj1
parents: 1150
diff changeset
 17217
_sun_misc_Unsafe_getShort: nativeContext
vranyj1
parents: 1150
diff changeset
 17218
vranyj1
parents: 1150
diff changeset
 17219
    <javanative: 'sun/misc/Unsafe' name: 'getShort(Ljava/lang/Object;J)S'>
vranyj1
parents: 1150
diff changeset
 17220
vranyj1
parents: 1150
diff changeset
 17221
    | o offset |
vranyj1
parents: 1150
diff changeset
 17222
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17223
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17224
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17225
vranyj1
parents: 1150
diff changeset
 17226
    "Modified: / 22-11-2011 / 14:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17227
!
vranyj1
parents: 1150
diff changeset
 17228
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17229
_sun_misc_Unsafe_getShortVolatile: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17230
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17231
    <javanative: 'sun/misc/Unsafe' name: 'getShortVolatile(Ljava/lang/Object;J)S'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17232
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17233
    | o offset |
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17234
    o := nativeContext argAt: 1.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17235
    offset := nativeContext argAt: 2.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17236
    ^o instVarAt: offset
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17237
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17238
    "Modified: / 29-06-2012 / 19:05:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17239
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17240
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17241
_sun_misc_Unsafe_objectFieldOffset: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17242
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17243
    <javanative: 'sun/misc/Unsafe' name: 'objectFieldOffset'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17244
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17245
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17246
    | javaFieldObject |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17247
    javaFieldObject := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17248
    ^javaFieldObject instVarNamed: #slot
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17250
    "Created: / 22-11-2010 / 17:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17251
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17252
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17253
_sun_misc_Unsafe_pageSize: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17254
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17255
    <javanative: 'sun/misc/Unsafe' name: 'pageSize'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17256
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17257
    ^ 4096"4K is the page size on x86, I think... "
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17258
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17259
    "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
 17260
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17261
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17262
_sun_misc_Unsafe_park: nativeContext
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17263
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17264
    <javanative: 'sun/misc/Unsafe' name: 'park(ZJ)V'>
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17265
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17266
    /**
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17267
     * Block current thread, returning when a balancing
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17268
     * <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
 17269
     * 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
 17270
     * 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
 17271
     * 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
 17272
     * 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
 17273
     * '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
 17274
     * 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
 17275
     * elsewhere.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17276
     */
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17277
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17278
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17279
    | absolute millis tout process |
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17280
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17281
    absolute := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17282
    millis := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17283
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17284
    millis ~~ 0 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17285
        absolute == 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17286
            tout := millis - OperatingSystem getOSTime.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17287
            tout < 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17288
                tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17289
            ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17290
        ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17291
            tout := millis.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17292
        ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17293
    ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17294
        tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17295
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17296
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17297
    process := Processor activeProcess.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17298
    self park: process timeout: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17299
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17300
    "Modified: / 16-08-2012 / 21:52:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17301
!
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17302
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17303
_sun_misc_Unsafe_putBoolean: nativeContext
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17304
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17305
    <javanative: 'sun/misc/Unsafe' name: 'putBoolean(Ljava/lang/Object;JZ)V'>
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17306
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17307
    "Like putInt:, see _sun_misc_Unsafe_putInt:"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17308
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17309
    | o offset x |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17310
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17311
    o := nativeContext argAt: 1.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17312
    offset := nativeContext argAt: 2.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17313
    x := nativeContext argAt: 4.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17314
    ^o instVarAt: offset put: x.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17315
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17316
    "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
 17317
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17318
1151
vranyj1
parents: 1150
diff changeset
 17319
_sun_misc_Unsafe_putByte: nativeContext
vranyj1
parents: 1150
diff changeset
 17320
vranyj1
parents: 1150
diff changeset
 17321
    <javanative: 'sun/misc/Unsafe' name: 'putByte(Ljava/lang/Object;JB)V'>
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17322
    <javanative: 'sun/misc/Unsafe' name: 'putByte(JB)V'>
1151
vranyj1
parents: 1150
diff changeset
 17323
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17324
    nativeContext selector == #'putByte(JB)V' ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17325
        | address value |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17326
        address := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17327
        value := nativeContext argAt: 3.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17328
        SimulatedNativeMemory byteAt: address put: (value bitAnd: 16rFF).
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17329
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17330
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17331
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17332
    nativeContext selector = #'putByte(Ljava/lang/Object;JB)V' ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17333
        | o offset x |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17334
        o := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17335
        offset := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17336
        x := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17337
        ^o instVarAt: offset put: x.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17338
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17339
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17340
    self shouldNotImplement
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17341
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17342
    "Modified: / 31-07-2012 / 11:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17343
!
vranyj1
parents: 1150
diff changeset
 17344
vranyj1
parents: 1150
diff changeset
 17345
_sun_misc_Unsafe_putChar: nativeContext
vranyj1
parents: 1150
diff changeset
 17346
vranyj1
parents: 1150
diff changeset
 17347
    <javanative: 'sun/misc/Unsafe' name: 'putChar(Ljava/lang/Object;JC)V'>
vranyj1
parents: 1150
diff changeset
 17348
vranyj1
parents: 1150
diff changeset
 17349
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17350
vranyj1
parents: 1150
diff changeset
 17351
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17352
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17353
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17354
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17355
vranyj1
parents: 1150
diff changeset
 17356
    "Modified: / 22-11-2011 / 14:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17357
!
vranyj1
parents: 1150
diff changeset
 17358
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17359
_sun_misc_Unsafe_putDouble: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17360
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17361
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17362
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17363
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17364
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17365
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17366
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17367
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17368
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17369
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17370
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17371
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17372
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17373
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17374
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17375
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17376
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17377
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17378
        SimulatedNativeMemory doubleAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17379
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17380
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17381
    self internalError:'Unknown variant of putDouble() native!!'
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17382
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17383
    "Modified: / 30-08-2011 / 15:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17384
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17385
1151
vranyj1
parents: 1150
diff changeset
 17386
_sun_misc_Unsafe_putFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 17387
vranyj1
parents: 1150
diff changeset
 17388
    <javanative: 'sun/misc/Unsafe' name: 'putFloat(Ljava/lang/Object;JF)V'>
vranyj1
parents: 1150
diff changeset
 17389
vranyj1
parents: 1150
diff changeset
 17390
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17391
vranyj1
parents: 1150
diff changeset
 17392
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17393
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17394
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17395
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17396
vranyj1
parents: 1150
diff changeset
 17397
    "Modified: / 22-11-2011 / 14:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17398
!
vranyj1
parents: 1150
diff changeset
 17399
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17400
_sun_misc_Unsafe_putInt: nativeContext
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17401
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17402
    <javanative: 'sun/misc/Unsafe' name: 'putInt'>
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17403
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17404
    /**
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17405
     * Stores a value into a given Java variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17406
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17407
     * The first two parameters are interpreted exactly as with
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17408
     * {@link #getInt(Object, long)} to refer to a specific
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17409
     * Java variable (field or array element).  The given value
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17410
     * is stored into that variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17411
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17412
     * The variable must be of the same type as the method
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17413
     * parameter <code>x</code>.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17414
     *
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17415
     * @param o Java heap object in which the variable resides, if any, else
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17416
     *        null
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17417
     * @param offset indication of where the variable resides in a Java heap
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17418
     *        object, if any, else a memory address locating the variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17419
     *        statically
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17420
     * @param x the value to store into the indicated Java variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17421
     * @throws RuntimeException No defined exceptions are thrown, not even
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17422
     *         {@link NullPointerException}
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17423
     */
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17424
    public native void putInt(Object o, long offset, int x);
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17425
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17426
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17427
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17428
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17429
    o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17430
    offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17431
    x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17432
    ^o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17433
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17434
    "Modified: / 30-08-2011 / 15:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17435
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17436
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17437
_sun_misc_Unsafe_putLong: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17438
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17439
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17440
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17441
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17442
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17443
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17444
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17445
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17446
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17447
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17448
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17449
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17450
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17451
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17452
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17453
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17454
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17455
        x := nativeContext argAt: 3.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17456
        SimulatedNativeMemory sint64At: o put: x.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17457
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17458
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17459
    self internalError:'Unknown variant of putLong() native!!'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17461
    "Created: / 07-12-2010 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17462
    "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
 17463
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17464
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17465
_sun_misc_Unsafe_putObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17466
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17467
    <javanative: 'sun/misc/Unsafe' name: 'putObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17468
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17469
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17470
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17471
     * Stores a reference value into a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17472
     * <p>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17473
     * Unless the reference <code>x</code> being stored is either null
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17474
     * or matches the field type, the results are undefined.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17475
     * If the reference <code>o</code> is non-null, car marks or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17476
     * other store barriers for that object (if the VM requires them)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17477
     * are updated.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17478
     * @see #putInt(Object, int, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17479
     */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17480
     public native void putObject(Object o, long offset, Object x);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17481
     "
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17482
    | o offset x |
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17483
    o := nativeContext argAt: 1.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17484
    offset := nativeContext argAt: 2.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17485
    x := nativeContext argAt: 4.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17486
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17487
    ^o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17488
        o at: offset put: x
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17489
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17490
        o instVarAt: offset put: x.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17491
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17492
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17493
    "Modified: / 03-09-2012 / 18:59:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17494
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17495
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17496
_sun_misc_Unsafe_putObjectVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17497
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17498
    <javanative: 'sun/misc/Unsafe' name: 'putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17499
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17500
    ^self _sun_misc_Unsafe_putObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17501
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17502
    "Modified: / 03-09-2012 / 18:59:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17503
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17504
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17505
_sun_misc_Unsafe_putOrderedObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17506
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17507
    <javanative: 'sun/misc/Unsafe' name: 'putOrderedObject(Ljava/lang/Object;JLjava/lang/Object;)V'>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17508
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17509
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17510
    /**
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17511
     * Version of {@link #putObjectVolatile(Object, long, Object)}
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17512
     * that does not guarantee immediate visibility of the store to
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17513
     * other threads. This method is generally only useful if the
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17514
     * underlying field is a Java volatile (or if an array cell, one
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17515
     * that is otherwise only accessed using volatile accesses).
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17516
     */
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17517
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17518
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17519
    ^ self _sun_misc_Unsafe_putObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17520
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17521
    "Modified (comment): / 03-09-2012 / 18:56:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17522
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17523
1151
vranyj1
parents: 1150
diff changeset
 17524
_sun_misc_Unsafe_putShort: nativeContext
vranyj1
parents: 1150
diff changeset
 17525
vranyj1
parents: 1150
diff changeset
 17526
    <javanative: 'sun/misc/Unsafe' name: 'putShort(Ljava/lang/Object;JS)V'>
vranyj1
parents: 1150
diff changeset
 17527
vranyj1
parents: 1150
diff changeset
 17528
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17529
vranyj1
parents: 1150
diff changeset
 17530
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17531
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17532
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17533
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17534
vranyj1
parents: 1150
diff changeset
 17535
    "Modified: / 22-11-2011 / 14:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17536
!
vranyj1
parents: 1150
diff changeset
 17537
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17538
_sun_misc_Unsafe_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17540
    <javanative: 'sun/misc/Unsafe' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17541
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17542
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17543
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17544
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17545
    "Created: / 25-10-2010 / 16:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17546
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17547
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17548
_sun_misc_Unsafe_setMemory: nativeContext
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17549
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17550
    <javanative: 'sun/misc/Unsafe' name: 'setMemory(JJB)V'>
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17551
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17552
    | address bytes value|
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17553
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17554
    address := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17555
    bytes := nativeContext argAt: 3.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17556
    value := nativeContext argAt: 5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17557
    SimulatedNativeMemory memset: address value: value length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17558
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17559
    "Modified (format): / 11-07-2012 / 10:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17560
!
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17561
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17562
_sun_misc_Unsafe_staticFieldBase: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17563
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17564
    <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
 17565
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17566
      /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17567
      * 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
 17568
      * #staticFieldOffset}.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17569
      * <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
 17570
      * given class can be accessed via methods like {@link #getInt(Object,
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17571
      * 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
 17572
      * 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
 17573
      * 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
 17574
      * this class.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17575
      */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17576
      public native Object staticFieldBase(Field f);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17577
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17578
     | javaFieldObject javaClassObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17579
     javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17580
     javaClassObject := javaFieldObject instVarNamed: #clazz.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17581
     ^self classForJavaClassObject: javaClassObject.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17582
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17583
    "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
 17584
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17585
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17586
_sun_misc_Unsafe_staticFieldOffset: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17587
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17588
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldOffset(Ljava/lang/reflect/Field;)J'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17589
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17590
    | javaFieldObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17591
    javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17592
    ^javaFieldObject instVarNamed: #slot
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17593
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17594
    "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
 17595
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17596
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17597
_sun_misc_Unsafe_unpark: nativeContext
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17598
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17599
    <javanative: 'sun/misc/Unsafe' name: 'unpark(Ljava/lang/Object;)V'>
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17600
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17601
    /**
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17602
     * Unblock the given thread blocked on <tt>park</tt>, or, if it is
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17603
     * not blocked, cause the subsequent call to <tt>park</tt> not to
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17604
     * block.  Note: this operation is 'unsafe' solely because the
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17605
     * caller must somehow ensure that the thread has not been
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17606
     * destroyed. Nothing special is usually required to ensure this
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17607
     * when called from Java (in which there will ordinarily be a live
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17608
     * reference to the thread) but this is not nearly-automatically
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17609
     * so when calling from native code.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17610
     * @param thread the thread to unpark.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17611
     *
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17612
     */
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17613
    public native void unpark(Object thread);
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17614
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17615
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17616
    | thread process |
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17617
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17618
    thread := nativeContext argAt: 1.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17619
    process := Java threads at: thread ifAbsent:[
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17620
        self error: 'No process for given thread'.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17621
    ].
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17622
    self unpark: process.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17623
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17624
    "Modified: / 16-08-2012 / 21:52:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17625
!
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17626
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17627
_sun_misc_VM_initialize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17629
    <javanative: 'sun/misc/VM' name: 'initialize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17630
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17631
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17632
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17633
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17634
    "Created: / 26-11-2010 / 18:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17635
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17636
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17637
!JavaVM class methodsFor:'native - sun.nio.ch'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17638
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17639
_sun_nio_ch_FileChannelImpl_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17640
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17641
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'initIDs()J'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17642
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17643
    ^ 4096 "/page size, see
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17644
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17645
    "Modified: / 10-07-2012 / 01:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17646
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17647
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17648
_sun_nio_ch_FileChannelImpl_map0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17649
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17650
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'map0(IJJ)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17651
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17652
    ^ UnimplementedNativeMethodSignal raise
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17653
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17654
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17655
_sun_nio_ch_FileChannelImpl_position0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17656
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17657
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'position0(Ljava/io/FileDescriptor;J)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17658
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17659
    | fd position stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17660
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17661
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17662
    position := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17663
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17664
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17665
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17666
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17667
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17668
    ^position = -1
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17669
        ifTrue:[stream position0Based]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17670
        ifFalse:[stream position0Based: position. 0].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17671
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17672
    "Modified: / 10-07-2012 / 01:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17673
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17674
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17675
_sun_nio_ch_FileChannelImpl_size0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17676
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17677
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'size0(Ljava/io/FileDescriptor;)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17678
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17679
    | fd stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17680
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17681
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17682
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17683
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17684
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17685
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17686
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17687
    ^stream fileSize max: stream position0Based.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17688
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17689
    "Modified: / 10-07-2012 / 01:28:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17690
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17691
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17692
_sun_nio_ch_FileChannelImpl_truncate0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17693
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17694
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'truncate0(Ljava/io/FileDescriptor;J)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17695
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17696
    | fd size stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17697
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17698
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17699
    size := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17700
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17701
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17702
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17703
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17704
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17705
    stream truncateTo: size.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17706
    ^0.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17707
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17708
    "Modified: / 10-07-2012 / 01:02:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17709
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17710
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17711
_sun_nio_ch_FileDispatcher_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17712
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17713
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17714
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17715
    ^ JavaNioSupport _sun_nio_ch_FileDispatcher_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17716
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17717
    "Modified: / 06-07-2012 / 22:35:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17718
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17719
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17720
_sun_nio_ch_FileDispatcher_preClose0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17721
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17722
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'preClose0(Ljava/io/FileDescriptor;)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17723
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17724
    "Nothing to do here"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17725
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17726
    "Modified: / 10-07-2012 / 00:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17727
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17728
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17729
_sun_nio_ch_FileDispatcher_read0: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17730
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17731
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'read0(Ljava/io/FileDescriptor;JI)I'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17732
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17733
    | fd address len stream read |
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17734
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17735
    fd := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17736
    address := nativeContext argAt: 2.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17737
    len := nativeContext argAt: 4.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17738
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17739
    stream := self validateFileDescriptor: fd.
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17740
    stream atEnd ifTrue:[ ^ -1 ].
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17741
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17742
        self shouldImplement
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17743
        "/WAS: read := stream nextBytes:len into:SimulatedNativeMemory memory startingAt: address
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17744
    ] on: Error do:[:ex|
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17745
        self throwIOExceptionWithMessage: ex description.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17746
        ^0
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17747
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17748
    ^read
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17749
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17750
    "Modified (comment): / 11-07-2012 / 10:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17751
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17752
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17753
_sun_nio_ch_FileDispatcher_write0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17754
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17755
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'write0(Ljava/io/FileDescriptor;JI)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17756
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17757
    | fd address len stream writtem |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17758
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17759
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17760
    address := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17761
    len := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17762
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17763
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17764
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17765
        self shouldImplement.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17766
        "/WAS: writtem := stream nextPutBytes:len from:SimulatedNativeMemory memory startingAt: address
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17767
    ] on: Error do:[:ex|
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17768
        self throwIOExceptionWithMessage: ex description.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17769
        ^0
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17770
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17771
    ^writtem
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17772
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17773
    "Modified: / 11-07-2012 / 10:38:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17774
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17775
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17776
_sun_nio_ch_IOUtil_initIDs: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17777
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17778
    <javanative: 'sun/nio/ch/IOUtil' name: 'initIDs()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17779
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17780
    "Nothing to do here"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17781
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17782
    "Modified: / 06-07-2012 / 22:10:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17783
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17784
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17785
_sun_nio_ch_IOUtil_initPipe: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17786
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17787
    <javanative: 'sun/nio/ch/IOUtil' name: 'initPipe([IZ)V'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17788
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17789
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17790
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17791
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17792
_sun_nio_ch_NativeThread_current: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17793
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17794
    <javanative: 'sun/nio/ch/NativeThread' name: 'current()J'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17795
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17796
    ^ JavaNioSupport _sun_nio_ch_NativeThread_current
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17797
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17798
    "Modified: / 06-07-2012 / 22:39:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17799
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17800
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17801
_sun_nio_ch_NativeThread_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17802
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17803
    <javanative: 'sun/nio/ch/NativeThread' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17804
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17805
    ^ JavaNioSupport _sun_nio_ch_NativeThread_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17806
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17807
    "Modified: / 06-07-2012 / 22:38:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17808
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17809
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17810
_sun_nio_ch_Net_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17811
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17812
    <javanative: 'sun/nio/ch/Net' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17813
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17814
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17815
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17816
    "Modified: / 10-05-2012 / 17:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17817
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17818
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17819
_sun_nio_ch_Net_socket0: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17820
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17821
    <javanative: 'sun/nio/ch/Net' name: 'socket0(ZZ)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17822
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17823
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17824
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17825
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17826
_sun_nio_ch_ServerSocketChannelImpl_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17827
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17828
    <javanative: 'sun/nio/ch/ServerSocketChannelImpl' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17829
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17830
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17831
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17832
    "Modified: / 10-05-2012 / 16:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17833
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17834
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17835
!JavaVM class methodsFor:'native - sun.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17836
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17837
_sun_reflect_ConstantPool_getDoubleAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17838
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17839
    <javanative: 'sun/reflect/ConstantPool' name: 'getDoubleAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17840
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17841
        | cpool  index  double |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17842
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17843
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17844
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17845
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17846
    double := cpool at:index.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
 17847
    self assert:double isFloat message:'Not a float constant!!'.
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17848
    ^ double
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17849
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17850
    "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
 17851
    "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
 17852
    "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
 17853
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17854
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17855
_sun_reflect_ConstantPool_getIntAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17856
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17857
    <javanative: 'sun/reflect/ConstantPool' name: 'getIntAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17858
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17859
        | cpool  index  int |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17860
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17861
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17862
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17863
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17864
    int := cpool at:index.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
 17865
    self assert:int isInteger message:'Not an integer constant!!'.
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17866
    ^ int
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17867
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17868
    "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
 17869
    "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
 17870
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17871
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17872
_sun_reflect_ConstantPool_getLongAt0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17873
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17874
    <javanative: 'sun/reflect/ConstantPool' name: 'getLongAt0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17875
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17876
        | cpool  index  long |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17877
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17878
    cpool := self reflection constantPoolFor:(nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17879
    index := nativeContext at:3.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17880
     "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17881
    long := cpool at:index.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
 17882
    self assert:long isInteger message:'Not a float constant!!'.
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17883
    ^ long
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17884
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17885
    "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
 17886
    "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
 17887
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17888
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17889
_sun_reflect_ConstantPool_getUTF8At0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17890
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17891
    <javanative: 'sun/reflect/ConstantPool' name: 'getUTF8At0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17892
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17893
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17894
    | cpool index string |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17895
    cpool := self reflection constantPoolFor: (nativeContext receiver).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17896
    index := nativeContext at: 3.
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17897
    "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17898
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17899
    string := cpool at: index.
2022
2e657a7a758b Changed #assert:description to #assert:message: (the first one in compatibility extension)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1989
diff changeset
 17900
    self assert:string isString message:'Not an UTF8 constant!!'.
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17901
    ^Java as_String: string
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17902
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17903
    "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
 17904
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17905
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17906
_sun_reflect_NativeConstructorAccessorImpl_newInstance0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17908
    <javanative: 'sun/reflect/NativeConstructorAccessorImpl' name: 'newInstance0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17909
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17910
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17911
    | ctor args method instance class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17912
    ctor := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17913
    args := aJavaContext argAt: 2.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17914
    class := self reflection classForJavaConstructorObject: ctor.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17915
    method := self reflection methodForJavaConstructorObject: ctor.
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17916
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17917
    instance := class new.
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
 17918
    self invoke: ctor receiver: instance arguments: args context: aJavaContext constructor: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17919
    ^instance
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17921
    "Created: / 26-11-2010 / 11:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17922
    "Modified: / 09-02-2011 / 01:12:10 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17923
    "Modified: / 22-08-2012 / 12:25:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17924
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17926
_sun_reflect_NativeMethodAccessorImpl_invoke0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17927
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17928
    <javanative: 'sun/reflect/NativeMethodAccessorImpl' name: 'invoke0'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17929
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17930
    private static native Object invoke0(Method m, Object obj, Object[] args);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17931
    "
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 17932
    | m obj args method |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17933
    m := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17934
    obj := nativeContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17935
    args := nativeContext argAt: 3.
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17936
    method := self reflection methodForJavaMethodObject: m.
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17937
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17938
    ^ self invoke: m receiver: obj arguments: args context: nativeContext constructor: false.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17940
    "Created: / 06-02-2011 / 00:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17941
    "Modified: / 28-02-2011 / 16:57:31 / Marcel Hlopko <hlopik@gmail.com>"
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17942
    "Modified: / 19-08-2011 / 15:06:00 / cg"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17943
    "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
 17944
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17945
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17946
_sun_reflect_Reflection_getCallerClass: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17947
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17948
    <javanative: 'sun/reflect/Reflection' name: 'getCallerClass'>
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17949
    "
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17950
    /** Returns the class of the method <code>realFramesToSkip</code>
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17951
        frames up the stack (zero-based), ignoring frames associated
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17952
        with java.lang.reflect.Method.invoke() and its implementation.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17953
        The first frame is that associated with this method, so
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17954
        <code>getCallerClass(0)</code> returns the Class object for
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17955
        sun.reflect.Reflection. Frames associated with
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17956
        java.lang.reflect.Method.invoke() and its implementation are
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17957
        completely ignored and do not count toward the number of 'real'
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17958
        frames skipped. */
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17959
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17960
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17961
    | framesToSkip framesSkipped frame cls |
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17962
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17963
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17964
    framesToSkip := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17965
    framesSkipped := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17966
    frame := aJavaContext.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17967
    [ framesSkipped == framesToSkip ] whileFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17968
        frame := frame sender.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17969
        "Frames for java,lang.reflect.Method.invoke() does not count, sigh.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17970
         What a crappy implementation"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17971
        (frame selector == #'invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;'
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17972
            and:[ frame receiver class name = #'java/lang/reflect/Method']) ifFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17973
                framesSkipped := framesSkipped + 1
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17974
            ]
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17975
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17976
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17977
    "Returns the __class of the method__, not !!!!!! the class of method's receiver !!!!!!"
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17978
    "                  |                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17979
    "                  V                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17980
    cls := frame method mclass theNonMetaclass.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17981
    ^cls isJavaClass
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17982
        ifTrue:[JavaVM javaClassObjectForClass:cls]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17983
        ifFalse:[nil]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17985
    "Created: / 25-10-2010 / 16:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17986
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17987
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17988
_sun_reflect_Reflection_getClassAccessFlags: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17990
    <javanative: 'sun/reflect/Reflection' name: 'getClassAccessFlags'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17992
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17993
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17994
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17995
    ^(class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17996
        1041"FIXME: make it symbolic"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17997
    ] ifFalse:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17998
        class accessFlags
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17999
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 18000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 18001
    "Created: / 26-11-2010 / 10:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 18002
    "Modified: / 28-01-2011 / 15:19:28 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 18003
    "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
 18004
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18005
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18006
!JavaVM class methodsFor:'native - sun.security.provider'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18007
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18008
_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18009
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18010
    <javanative: 'sun/security/provider/NativeSeedGenerator' name: 'nativeGenerateSeed([B)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18011
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18012
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18013
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18014
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18015
!JavaVM class methodsFor:'queries'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18016
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18017
booted
1209
vranyj1
parents: 1205
diff changeset
 18018
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18019
    | jVM |
1209
vranyj1
parents: 1205
diff changeset
 18020
vranyj1
parents: 1205
diff changeset
 18021
    "/Slightly faster variant of the code below
vranyj1
parents: 1205
diff changeset
 18022
    ^SystemClassLoader notNil and:[
vranyj1
parents: 1205
diff changeset
 18023
        jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 18024
        jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ]
vranyj1
parents: 1205
diff changeset
 18025
    ].
vranyj1
parents: 1205
diff changeset
 18026
vranyj1
parents: 1205
diff changeset
 18027
"/    jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 18028
"/    ^ 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
 18029
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18030
    "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18031
     JavaVM booted"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18032
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18033
    "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
 18034
    "Modified: / 02-11-2011 / 22:08:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1209
vranyj1
parents: 1205
diff changeset
 18035
    "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
 18036
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18037
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18038
!JavaVM class methodsFor:'threads'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18039
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18040
clearInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18041
    ThreadInterrupts removeKey: process ifAbsent: []
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18042
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18043
    "Created: / 16-08-2012 / 22:03:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18044
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18045
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18046
isInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18047
    ^ThreadInterrupts at: process ifAbsent:[false].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18048
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18049
    "Created: / 16-08-2012 / 22:05:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18050
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18051
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18052
park: process timeout: tout
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18053
    "A helper for sun.misc.Unsafe.park()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18054
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18055
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18056
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18057
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18058
    ParkUnparkSemaphores isNil ifTrue:[
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18059
        ParkUnparkSemaphores := Dictionary new.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18060
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18061
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18062
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18063
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18064
    Logger log: 'parking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18065
    sema parkWithTimeoutMs: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18066
    Logger log: 'parked thread ', process printString , ' resumed' severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18067
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18068
    "Created: / 16-08-2012 / 21:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18069
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18070
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18071
setInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18072
    ThreadInterrupts at: process put: true
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18073
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18074
    "Created: / 16-08-2012 / 22:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18075
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18076
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18077
terminateAllThreads
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18078
    Java terminateAllThreads.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18079
    JavaEventThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18080
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18081
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18082
    "Created: / 8.1.1998 / 17:43:54 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18083
    "Modified: / 24.12.1999 / 02:33:16 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18084
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18085
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18086
threadStart: nativeContext
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18087
    "start the thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18088
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18089
    | jThread  jName  nm  stProcess  helper |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18090
    jThread := nativeContext receiver.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18091
    self assert: (jThread instVarNamed: 'priority') > 0.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18092
    stProcess := JavaProcess for: (helper := JavaProcess newHelper)
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18093
                priority: (Processor activePriority).
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18094
    helper javaThreadObject: jThread.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18095
    helper javaProcess: stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18096
    jName := jThread instVarNamed: 'name'.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18097
    jName isString ifFalse: [ nm := Java as_ST_String: jName. ] ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18098
        nm := jName
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18099
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18100
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18101
    "/ kludge - remember the ScreenUpdater ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18102
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18103
    nm = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18104
        nm = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18105
            (nm startsWith: 'AWT-EventQueue') ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18106
                JavaEventQueueThread := stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18107
            ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18108
        ]
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18109
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18110
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18111
    "/ when that process terminates, wakup any waiters
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18112
    "/mh 29.11.11 this makes join work
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18113
    "/mh 30.11.11 disable wait is to ensure that join can be called on thread after its finished and dont wait forever"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18114
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18115
    stProcess
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18116
        addExitAction: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18117
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18118
                log: ('%1 is going to die, notifying all waiters and disabling waiting on its monitor'
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18119
                        bindWith: jThread printString)
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 18120
                severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 18121
                facility: #JVM.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18122
            jThread instVarNamed: 'threadStatus' put: 0.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18123
            jThread getJavaMonitor disableWait.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18124
            self acquireMonitorAndNotifyAll: jThread.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18125
            ThreadInterrupts notNil ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18126
                ThreadInterrupts removeKey: stProcess ifAbsent:[]
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18127
            ].
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18128
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18129
    stProcess name: 'JAVA-' , nm.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18130
    stProcess restartable: true.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18131
    jThread instVarNamed: 'threadStatus' put: 1.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18132
    Java addThread: jThread for: stProcess.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18133
    stProcess resume.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18134
    ^ nil
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18135
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18136
    "Modified: / 24-12-1999 / 03:14:33 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18137
    "Created: / 14-12-2010 / 21:31:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18138
    "Modified: / 09-12-2011 / 12:58:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18139
    "Modified: / 03-09-2012 / 18:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18140
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18141
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18142
unpark: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18143
    "A helper for sun.misc.Unsafe.unpark()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18144
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18145
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18146
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18147
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18148
    ParkUnparkSemaphores isNil ifTrue:[ParkUnparkSemaphores dictionary new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18149
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18150
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18151
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18152
    Logger log: 'unparking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18153
    sema signal.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18154
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18155
    "Created: / 16-08-2012 / 21:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18156
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18158
!JavaVM class methodsFor:'vm support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18159
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18160
_ANEWARRAY:cls _:size
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18161
    "Returns a new array of elements of type class."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18162
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18163
    self assert: cls isBehavior.
1151
vranyj1
parents: 1150
diff changeset
 18164
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18165
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18166
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18167
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18168
    ].
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18169
    self assert:cls javaArrayClass isJavaArrayClass.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18170
    ^ cls javaArrayClass new:size
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18172
    "Created: / 17-12-2010 / 14:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18173
    "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
 18174
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18176
_ARRAYLENGTH:arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18177
    arr isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18178
        "/self halt:'should not happen'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18179
        self throwNullPointerException.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18180
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18181
    ^ arr size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18182
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18183
    "Created: / 08-01-1999 / 14:38:27 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18184
    "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
 18185
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18186
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18187
_ATHROW:aJavaException
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18188
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18189
    <resource: #skipInDebuggersWalkBack>
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18190
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18191
    aJavaException isNil ifTrue:[
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18192
        self halt:'cannot happen'
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18193
    ].
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18194
    "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
 18195
     being unwound, then all intermediate Java finally blocks are executed.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18196
     This is done by fake-throwing special FinallyToken, as there must an
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18197
     exception instance for Java. A Java compiler compiles unconditional
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18198
     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
 18199
     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
 18200
     Hence following hack: we teleport back to handler caller"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 18201
    aJavaException class == JavaContext::FinallyToken ifTrue:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18202
        aJavaException pass.
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
 18203
        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
 18204
    ].
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18205
    self throwException:aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18207
    "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
 18208
    "Modified: / 08-11-2011 / 16:32:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 18209
    "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
 18210
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18211
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18212
_CHECKCAST2: object _: classRef
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18213
    "Called by the VM (java bytecode interpreter) for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18214
     Unlike in _CHECKCAST:_: the second parameter is a class reference,
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18215
     not the class itself!! Will wanish!!"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18216
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18217
    | class |
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18218
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18219
    classRef isJavaRef ifTrue: [ class := classRef resolve ] ifFalse: [
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18220
        self error: 'I expected classRefs only - maybe I was wrong'
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18221
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18222
    (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
 18223
        self breakPoint: #mh.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18224
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18225
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18226
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18227
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18228
    ^ true.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18229
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18230
    "Created: / 19-05-2011 / 10:12:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18231
    "Modified (comment): / 09-10-2012 / 11:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18232
!
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18233
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18234
_CHECKCAST: object _: class
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18235
    "Called from the JIT-compiled code for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18236
     Unlike in _CHECKCAST2:_: the second parameter is a class,,
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18237
     not a class class reference!!
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18238
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18239
     This method *MUST* return the object for this may lead
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18240
     into GC. See ___checkcast() VM function
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18241
     "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18242
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18243
    (self canCast: object class to: class) ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18244
        self throwClassCastException.
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18245
        ^ nil "Not reached"
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18246
    ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18247
    ^ object
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18249
    "Created: / 08-01-1999 / 14:53:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18250
    "Modified: / 09-01-1999 / 00:45:21 / cg"
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18251
    "Modified: / 09-10-2012 / 11:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18252
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18254
_D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18255
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18257
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18258
    v > 16r7FFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18259
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18260
	v := 16r7FFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18261
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18262
	v < 16r80000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18263
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18264
	    v := 16r80000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18265
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18266
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18267
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18269
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18270
    "Created: / 8.1.1999 / 14:47:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18271
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18273
_D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18274
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18276
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18277
    v > 16r7FFFFFFFFFFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18278
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18279
	v := 16r7FFFFFFFFFFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18280
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18281
	v < 16r8000000000000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18282
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18283
	    v := 16r8000000000000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18284
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18285
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18286
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18288
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18289
    "Created: / 8.1.1999 / 14:46:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18290
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18292
_DADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18293
    ^ op1 asFloat + op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18295
    "Created: / 8.1.1999 / 15:11:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18296
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18298
_DDIV:op1 _:op2
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18299
    ^ op1 asFloat uncheckedDivide: op2 asFloat.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18300
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18301
    "Created: / 08-01-1999 / 15:09:10 / cg"
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18302
    "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
 18303
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18305
_DMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18306
    ^ op1 asFloat * op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18308
    "Created: / 8.1.1999 / 14:49:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18309
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18311
_DNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18312
    ^ op asFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18314
    "Created: / 8.1.1999 / 15:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18315
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18317
_DSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18318
    ^ op1 asFloat - op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18320
    "Created: / 8.1.1999 / 15:10:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18321
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18323
_F2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18324
    ^ self _D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18326
    "Created: / 8.1.1999 / 14:47:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18327
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18329
_F2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18330
    ^ self _D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18332
    "Created: / 8.1.1999 / 14:47:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18333
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18335
_FADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18336
    ^ op1 asShortFloat + op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18338
    "Created: / 8.1.1999 / 15:11:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18339
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18341
_FDIV:op1 _:op2
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18342
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18343
    op1 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18344
        op2 isZero ifTrue:[ ^ Float NaN ]
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18345
    ].
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18346
    op2 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18347
        ^ Float infinity
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18348
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18349
    ^ op1 asShortFloat / op2 asShortFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18350
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18351
    "Created: / 08-01-1999 / 15:09:32 / cg"
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18352
    "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
 18353
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18355
_FMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18356
    ^ op1 asShortFloat * op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18357
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18358
    "Created: / 8.1.1999 / 14:50:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18359
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18361
_FNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18362
    ^ op asShortFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18363
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18364
    "Created: / 8.1.1999 / 15:06:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18365
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18367
_FSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18368
    ^ op1 asShortFloat - op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18370
    "Created: / 8.1.1999 / 15:08:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18371
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18372
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18373
_INSTANCEOF:object _:class
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18374
    "Called from the jitted code for unhandled cases.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18375
     Unlike in _INSTANCEOF_R:_: the second parameter is a class,,
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18376
     not a class class reference!!"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18377
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18378
    object isNil ifTrue:[^0].
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18379
    ^(self canCast: object class to: class)
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18380
        ifTrue:[1]
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18381
        ifFalse:[0]
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18382
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18383
    "Created: / 08-01-1999 / 14:52:54 / cg"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18384
    "Modified: / 27-01-1999 / 20:56:25 / cg"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18385
    "Modified: / 09-10-2012 / 11:55:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18386
    "Modified (comment): / 15-10-2012 / 21:51:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18387
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18388
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18389
_INSTANCEOF_R: object _: classRef
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18390
    "Called by the VM (java bytecode interpreter) for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18391
     Unlike _INSTANCEOF:_: the second parameter is a class reference,
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18392
     not the class itself!! Will wanish!!"
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18393
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18394
    | class |
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18395
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18396
    classRef isJavaRef ifFalse: [self error: 'expected only classRefs - maybe I was wrong'].
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18397
    class := classRef resolve.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18398
    object isNil ifTrue: [ ^ 0 ].
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18399
    ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18400
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18401
    "Created: / 15-10-2012 / 21:51:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18402
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18403
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18404
_L2D:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18405
    ^ op1 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18407
    "Created: / 8.1.1999 / 14:46:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18408
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18410
_L2F:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18411
    ^ op1 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18413
    "Created: / 8.1.1999 / 14:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18414
    "Modified: / 8.1.1999 / 14:50:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18415
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18417
_LADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18418
    |sum|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18420
    sum := (op1 + op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18421
    ^ sum
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18423
    "Created: / 8.1.1999 / 15:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18424
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18425
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18426
_LAND:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18427
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18429
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18430
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18431
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18432
    rslt := op1 bitAnd: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18433
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18435
    "Modified: / 7.1.1998 / 21:21:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18436
    "Created: / 8.1.1999 / 14:54:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18437
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18438
1729
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18439
_LDC_R: ref
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18440
    "Called by JIT-compiled code for non-constant
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18441
     reference (StringRef or ClassRef"
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18442
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18443
    ^ref isJavaClassRef ifTrue:[
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18444
        self javaClassObjectForClass: ref resolve
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18445
    ] ifFalse:[
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18446
        ref resolve
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18447
    ]
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18448
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18449
    "Created: / 16-10-2012 / 09:34:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18450
!
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18451
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18452
_LDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18453
    |quo|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18455
    quo := op1 quo: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18456
    ^ quo
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18457
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18458
    "Created: / 8.1.1999 / 15:04:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18459
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18460
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18461
_LMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18462
    |prod o1 o2 sign|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18464
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18465
    "/ ST's largeIntegers compute a correct result;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18466
    "/ but here, we want the overflow to flow into the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18467
    "/ sign bit ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18468
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18469
    sign := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18470
    (o1 := op1) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18471
	sign := -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18472
	o1 := o1 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18473
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18474
    (o2 := op2) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18475
	sign := sign negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18476
	o2 := o2 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18477
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18479
    prod := (o1 * o2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18480
    (prod bitAnd:16r8000000000000000) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18481
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18482
    sign == -1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18483
	prod := prod negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18484
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18485
    ^ prod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18487
    "Created: / 8.1.1999 / 15:10:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18488
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18490
_LNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18491
    ^ op asInteger negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18493
    "Created: / 8.1.1999 / 15:06:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18494
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18496
_LOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18497
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18499
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18500
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18501
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18502
    rslt := op1 bitOr: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18503
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18504
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18505
    "Created: / 8.1.1999 / 15:05:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18506
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18508
_LREM:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18509
    |rem|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18511
    rem := op1 rem: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18512
    ^ rem
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18514
    "Modified: / 7.1.1998 / 00:23:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18515
    "Created: / 8.1.1999 / 15:04:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18516
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18518
_LSHL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18519
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18521
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18522
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18523
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18524
    rslt := (op1 bitShift:op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18525
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18527
    "Created: / 8.1.1999 / 14:51:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18528
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18530
_LSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18531
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18533
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18534
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18535
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18537
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18538
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18539
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18540
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18541
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18543
    "Created: / 8.1.1999 / 14:51:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18544
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18546
_LSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18547
    |diff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18549
    diff := (op1 - op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18550
    ^ diff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18552
    "Created: / 8.1.1999 / 15:10:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18553
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18555
_LUSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18556
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18558
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18559
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18560
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18562
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18563
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18564
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18565
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18566
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18568
    "Modified: / 7.1.1998 / 21:22:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18569
    "Created: / 8.1.1999 / 14:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18570
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18572
_LXOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18573
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18575
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18576
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18577
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18578
    rslt := op1 bitXor: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18579
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18580
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18581
    "Created: / 8.1.1999 / 15:12:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18582
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18583
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18584
_MONITORENTER: someObject
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18585
    self assert: (thisContext sender isJavaContext).
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18586
    self assert: (thisContext sender isMarkedForUnwind).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18587
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18588
    self monitorEnter: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18589
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18590
    "Created: / 08-01-1999 / 14:23:10 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18591
    "Modified: / 08-01-1999 / 18:47:26 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18592
    "Modified: / 10-08-2011 / 20:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18593
    "Modified: / 09-11-2011 / 19:23:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18594
    "Modified (format): / 26-08-2012 / 15:20:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18595
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18596
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18597
_MONITOREXIT: someObject
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18598
    self monitorExit: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18599
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18600
    "Created: / 08-01-1999 / 14:23:19 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18601
    "Modified: / 08-01-1999 / 18:47:08 / cg"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18602
    "Modified: / 09-11-2011 / 12:42:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18603
    "Modified: / 26-08-2012 / 23:51:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18604
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18605
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18606
_MULTINEW2: classRef _: dim1
927
vranyj1
parents: 926
diff changeset
 18607
vranyj1
parents: 926
diff changeset
 18608
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18609
1151
vranyj1
parents: 1150
diff changeset
 18610
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18611
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18612
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18613
        ^nil
vranyj1
parents: 1150
diff changeset
 18614
    ].
927
vranyj1
parents: 926
diff changeset
 18615
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18616
    arrCls := classRef resolve.
vranyj1
parents: 926
diff changeset
 18617
    arr := arrCls new: dim1.
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18618
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18619
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18620
    "Created: / 19-05-2011 / 10:46:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18621
    "Modified: / 22-11-2011 / 09:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18622
!
vranyj1
parents: 926
diff changeset
 18623
vranyj1
parents: 926
diff changeset
 18624
_MULTINEW2: classRef _: dim1 _: dim2
vranyj1
parents: 926
diff changeset
 18625
vranyj1
parents: 926
diff changeset
 18626
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18627
1151
vranyj1
parents: 1150
diff changeset
 18628
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18629
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18630
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18631
        ^nil
vranyj1
parents: 1150
diff changeset
 18632
    ].
vranyj1
parents: 1150
diff changeset
 18633
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18634
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18635
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18636
        ^nil
vranyj1
parents: 1150
diff changeset
 18637
    ].
vranyj1
parents: 1150
diff changeset
 18638
vranyj1
parents: 1150
diff changeset
 18639
927
vranyj1
parents: 926
diff changeset
 18640
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18641
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18642
    arr := arrCls new: dim2.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18643
    1 to: dim2 do:[:i|
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18644
        arr at: i put: (arrCls javaComponentClass new: dim1)
927
vranyj1
parents: 926
diff changeset
 18645
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18646
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18647
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18648
    "Created: / 19-05-2011 / 10:47:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18649
    "Modified: / 22-11-2011 / 09:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18650
!
vranyj1
parents: 926
diff changeset
 18651
vranyj1
parents: 926
diff changeset
 18652
_MULTINEW2: classRef _: dim1 _: dim2 _: dim3
vranyj1
parents: 926
diff changeset
 18653
vranyj1
parents: 926
diff changeset
 18654
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18655
1151
vranyj1
parents: 1150
diff changeset
 18656
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18657
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18658
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18659
        ^nil
vranyj1
parents: 1150
diff changeset
 18660
    ].
vranyj1
parents: 1150
diff changeset
 18661
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18662
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18663
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18664
        ^nil
vranyj1
parents: 1150
diff changeset
 18665
    ].
vranyj1
parents: 1150
diff changeset
 18666
    dim3 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18667
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18668
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18669
        ^nil
vranyj1
parents: 1150
diff changeset
 18670
    ].
vranyj1
parents: 1150
diff changeset
 18671
vranyj1
parents: 1150
diff changeset
 18672
927
vranyj1
parents: 926
diff changeset
 18673
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18674
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18675
    arr := arrCls new: dim3.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18676
    1 to: dim3 do:[:i|
927
vranyj1
parents: 926
diff changeset
 18677
        | arr2 |
vranyj1
parents: 926
diff changeset
 18678
        arr2 := arrCls javaComponentClass new: dim2.
vranyj1
parents: 926
diff changeset
 18679
        1 to: dim2 do:[:j|
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18680
            arr2 at: j put: (arrCls javaComponentClass javaComponentClass new: dim1).
927
vranyj1
parents: 926
diff changeset
 18681
        ].
vranyj1
parents: 926
diff changeset
 18682
        arr at: i put: arr2.
vranyj1
parents: 926
diff changeset
 18683
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18684
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18685
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18686
    "Created: / 19-05-2011 / 10:47:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18687
    "Modified: / 22-11-2011 / 09:45:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18688
!
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18689
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18690
_MULTINEW:typeRef _:dim1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18691
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18692
    |arr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18694
    arr := typeRef new:dim1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18695
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18696
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18698
    "Created: / 08-01-1999 / 14:15:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18699
    "Modified: / 08-01-1999 / 18:03:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18700
    "Modified: / 16-03-2011 / 16:20:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18701
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18702
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18703
_MULTINEW: typeRef _: dim1 _: dim2
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18704
    | arr |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18705
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18706
    arr := typeRef new: dim2.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18707
    1 to: dim2
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18708
        do: [:idx | arr at: idx put: (self _MULTINEW: typeRef javaComponentClass _: dim1) ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18709
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18711
    "Created: / 08-01-1999 / 14:15:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18712
    "Modified: / 08-01-1999 / 17:58:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18713
    "Modified: / 16-03-2011 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18714
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18715
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18716
_MULTINEW:typeRef _:dim1 _:dim2 _:dim3
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18717
    |clsRef cls arr elType elSizes|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18719
    clsRef := typeRef asClassPointerRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18720
    cls := clsRef javaArrayClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18721
    arr := cls new:dim3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18722
    elType := typeRef deref.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18723
    1 to:dim3
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18724
        do:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18725
            [:idx |
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18726
            arr at:idx
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18727
                put:(self
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18728
                        _MULTINEW:elType
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18729
                        _:dim1
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18730
                        _:dim2) ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18731
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18732
"/ self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18733
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18734
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18736
    "Modified: / 6.1.1998 / 23:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18737
    "Created: / 8.1.1999 / 14:15:49 / cg"
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18738
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18739
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18740
_NEW: cls
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18741
    | inst |
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18742
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18743
    cls classInit. "/initializes the class if it is not already"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18744
    inst := cls basicNew.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18745
    thisContext sender method flushCode.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18746
    ^inst.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18747
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18748
    "Created: / 15-10-2012 / 21:53:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18749
    "Modified: / 02-11-2012 / 21:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18750
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18751
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18752
_NEWARRAY:type _:size
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18753
    "VM helper method NEWARRAY insn. Called only when
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18754
     size is not an SmallInt or negative"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18755
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18756
    size < 0 ifTrue:[
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18757
        self throwNegativeArraySizeException: size.
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18758
    ]
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18759
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18760
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18761
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18762
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18763
_NEW_R: clsRef
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18764
    | cls inst |
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18765
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18766
    cls := clsRef resolve. "/initializes the class if it is not already"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18767
    inst := cls basicNew.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18768
    thisContext sender method flushCode.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18769
    ^inst.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18770
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18771
    "Created: / 15-10-2012 / 21:54:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18772
    "Modified: / 02-11-2012 / 21:10:00 / 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
!JavaVM class methodsFor:'windows - events'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18776
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18777
awtEventsForEvent: anEvent javaWindow: jWin
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18778
    "given an ST/X event, create corresponding AWT event(s) for it"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18779
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18780
    | 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
 18781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18782
    type := anEvent type.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18783
    eventArgs := anEvent arguments.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18784
    key := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18785
    modifiers := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18786
    x := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18787
    y := 0.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18788
    ((type == #exposeX:y:width:height:)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18789
        or: [ (type == #graphicExposeX:y:width:height:) or: [ (type == #damage) ] ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18790
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18791
                "/        jWindowEventClass := Java classForName:'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18792
                "/        id := (jPaintEventClass instVarNamed:'PAINT').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18793
                jPaintEventClass := self classForName: 'java.awt.event.PaintEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18794
                id := (jPaintEventClass instVarNamed: 'UPDATE').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18795
                ((type == #exposeX:y:width:height:)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18796
                    or: [ (type == #graphicExposeX:y:width:height:) ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18797
                        ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18798
                            x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18799
                            y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18800
                            w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18801
                            h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18802
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18803
                        ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18804
                            x := eventArgs left.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18805
                            y := eventArgs top.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18806
                            w := eventArgs width.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18807
                            h := eventArgs height.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18808
                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18809
                jRect := (Java classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18810
                jRect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18811
                jRect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18812
                jRect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18813
                jRect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18814
                jEv := jPaintEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18815
                jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18816
                jEv instVarNamed: 'updateRect' put: jRect.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18817
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18818
"/        jEv instVarNamed:'g'         put:jWin.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18819
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18820
                ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18821
            ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18822
    (anEvent isKeyEvent
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18823
        or: [ anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ] ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18824
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18825
                jInputEventClass := Java classForName: 'java.awt.event.InputEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18826
                anEvent hasAlt ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18827
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'ALT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18828
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18829
                anEvent hasCtrl ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18830
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'CTRL_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18831
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18832
                anEvent hasMeta ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18833
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'META_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18834
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18835
                anEvent hasShift ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18836
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18837
                                bitOr: (jInputEventClass instVarNamed: 'SHIFT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18838
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18839
                anEvent hasButton1 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18840
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18841
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON1_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18842
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18843
                anEvent hasButton2 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18844
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18845
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON2_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18846
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18847
                anEvent hasButton3 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18848
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18849
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON3_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18850
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18851
                anEvent isPointerEnterLeaveEvent ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18852
                    "/ ST/X does not (yet) record this information
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18853
                    "/ with pointerLeave events.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18854
                    x := anEvent x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18855
                    y := anEvent y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18856
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18857
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18858
    anEvent isKeyEvent ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18859
        jKeyEventClass := Java classForName: 'java.awt.event.KeyEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18860
        key := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18861
        keyChar := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18862
        key := anEvent key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18863
        key isCharacter ifTrue: [ key := keyChar := key asciiValue ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18864
            untranslatedKey := anEvent view device keyboardMap keyAtValue: key
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18865
                        ifAbsent: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18866
            untranslatedKey == #Insert ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18867
                key := jKeyEventClass instVarNamed: 'VK_INSERT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18868
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18869
            untranslatedKey == #Delete ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18870
                key := jKeyEventClass instVarNamed: 'VK_DELETE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18871
                "/ 127
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18872
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18873
            untranslatedKey == #BackSpace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18874
                key := jKeyEventClass instVarNamed: 'VK_BACK_SPACE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18875
                "/ 8
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18876
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18877
            untranslatedKey == #Return ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18878
                key := jKeyEventClass instVarNamed: 'VK_ENTER'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18879
                "/ 13
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18880
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18881
            untranslatedKey == #Tab ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18882
                key := jKeyEventClass instVarNamed: 'VK_TAB'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18883
                "/ 9
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18884
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18885
            untranslatedKey == #Home ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18886
                key := jKeyEventClass instVarNamed: 'VK_HOME'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18887
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18888
            untranslatedKey == #End ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18889
                key := jKeyEventClass instVarNamed: 'VK_END'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18890
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18891
            (key == #PreviousPage or: [ untranslatedKey == #Prior ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18892
                key := jKeyEventClass instVarNamed: 'VK_PAGE_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18893
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18894
            (key == #NextPage or: [ key == #EndOfText ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18895
                key := jKeyEventClass instVarNamed: 'VK_PAGE_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18896
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18897
            untranslatedKey == #CursorUp ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18898
                key := jKeyEventClass instVarNamed: 'VK_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18899
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18900
            untranslatedKey == #CursorDown ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18901
                key := jKeyEventClass instVarNamed: 'VK_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18902
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18903
            untranslatedKey == #CursorLeft ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18904
                key := jKeyEventClass instVarNamed: 'VK_LEFT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18905
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18906
            untranslatedKey == #CursorRight ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18907
                key := jKeyEventClass instVarNamed: 'VK_RIGHT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18908
            ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18909
            (#( #F1 #F2 #F3 #F4 #F5 #F6 #F7 #F8 #F9 #F10 #F11 #F12 )
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18910
                includes: untranslatedKey)
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18911
                    ifTrue: [ key := jKeyEventClass instVarNamed: ('VK_' , untranslatedKey) ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18912
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18913
        (type == #keyPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18914
            id := jKeyEventClass instVarNamed: 'KEY_PRESSED'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18915
        ] ifFalse: [ id := jKeyEventClass instVarNamed: 'KEY_RELEASED' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18916
        jEv := jKeyEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18917
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18918
        jEv instVarNamed: 'keyCode' put: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18919
        jEv instVarNamed: 'keyChar' put: keyChar.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18920
        jEv instVarNamed: 'id' put: id.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18921
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18922
"/        jEv instVarNamed:'x'         put:x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18923
"/        jEv instVarNamed:'y'         put:y.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18924
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18925
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18926
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18927
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18928
    (anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18929
        jMouseEventClass := Java classForName: 'java.awt.event.MouseEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18930
        clickCount := 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18931
        (type == #buttonPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18932
            id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18933
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18934
            (type == #buttonRelease:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18935
                id := jMouseEventClass instVarNamed: 'MOUSE_RELEASED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18936
            ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18937
                (type == #buttonMotion:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18938
                    (anEvent state bitAnd: (anEvent view device anyButtonMotionMask)) == 0 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18939
                        id := jMouseEventClass instVarNamed: 'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18940
                    ] ifFalse: [ id := jMouseEventClass instVarNamed: 'MOUSE_DRAGGED'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18941
                ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18942
                    "/                    (type == #'pointerMotion:x:y:') ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18943
                    "/                        id := jMouseEventClass instVarNamed:'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18944
                    "/                    ] ifFalse:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18945
                    (type == #pointerEnter:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18946
                        id := jMouseEventClass instVarNamed: 'MOUSE_ENTERED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18947
                    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18948
                        (type == #pointerLeave:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18949
                            id := jMouseEventClass instVarNamed: 'MOUSE_EXITED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18950
                        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18951
                            (type == #buttonMultiPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18952
                                id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18953
                                clickCount := 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18954
                            ] ifFalse: [ self halt. ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18955
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18956
"/                        ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18957
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18958
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18959
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18960
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18961
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18962
        jEv := jMouseEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18963
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18964
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18965
        jEv instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18966
        jEv instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18967
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18968
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18969
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18970
    (type == #configureX:y:width:height:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18971
        view := anEvent view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18972
        x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18973
        y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18974
        w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18975
        h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18976
        resized := (w ~~ view width or: [ h ~~ view height ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18977
        moved := (x ~~ view left or: [ y ~~ view top ]).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18978
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18979
"/        (view isTopView or:[view isPopUpView]) ifTrue:[
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18980
        "/ view must update its origin/extent.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18981
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18982
        view dispatchEvent: anEvent.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18983
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18984
"/        ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18985
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18986
        "/ must change the components extent
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18987
        "/ is there no cleaner way to do this ?
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18988
        "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18989
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18990
        view isTopView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18991
            view isPopUpView ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18992
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18993
                "/ sigh - don't include the menu.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18994
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18995
                menu := self topViewsMenu: view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18996
                menu notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18997
                    "/ must add the menus height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18998
                    h := h - menu height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18999
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19000
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19001
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19002
        jWin instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19003
        jWin instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19004
        jWin instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19005
        jWin instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19006
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19007
        moved ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19008
            id := (jComponentEventClass instVarNamed: 'COMPONENT_MOVED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19009
            jEv1 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19010
            jEv1 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19011
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19012
        resized ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19013
            id := (jComponentEventClass instVarNamed: 'COMPONENT_RESIZED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19014
            jEv2 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19015
            jEv2 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19016
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19017
        jEv1 isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19018
            jEv2 isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19019
            ^ Array with: jEv2
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19020
        ] ifFalse: [ jEv2 isNil ifTrue: [ ^ Array with: jEv1 ] ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19021
        ^ Array with: jEv1 with: jEv2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19022
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19023
    (type == #focusIn) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19024
        "/ 'focusIn' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19025
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19026
        id := (jComponentEventClass instVarNamed: 'FOCUS_GAINED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19027
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19028
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19029
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19030
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19031
    (type == #focusOut) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19032
        "/ 'focusOut' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19033
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19034
        id := (jComponentEventClass instVarNamed: 'FOCUS_LOST').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19035
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19036
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19037
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19038
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19039
    (type == #mapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19040
        "/ 'mapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19041
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19042
        id := (jComponentEventClass instVarNamed: 'COMPONENT_SHOWN').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19043
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19044
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19045
"/        y := eventArgs at:2.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19046
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19047
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19048
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19049
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19050
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19051
    (type == #unmapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19052
        "/ 'unmapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19053
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19054
        id := (jComponentEventClass instVarNamed: 'COMPONENT_HIDDEN').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19055
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19056
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19057
"/        y := eventArgs at:2.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19058
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19059
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19060
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19061
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19062
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19063
    (type == #terminate) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19064
        jWindowEventClass := Java classForName: 'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19065
         "NEW
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19066
         id := (jWindowEventClass instVarNamed:'WINDOW_CLOSING').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19067
        " "OLD "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19068
        id := (jWindowEventClass instVarNamed: 'WINDOW_CLOSED').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19069
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19070
        jEv := jWindowEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19071
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19072
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19073
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19074
    EventTrace == true ifTrue: [ ('JAVA: unhandled event:' , type) infoPrintCR. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19075
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19077
    "Created: / 6.1.1998 / 20:38:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19078
    "Modified: / 9.1.1999 / 09:29:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19079
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19081
delegatesTo:someOne
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19082
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19084
    "Created: / 25.9.1999 / 16:11:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19085
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19087
doWindowsEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19088
    "invoked in an endless loop by the WToolkit-eventLoop
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19089
     native method."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19090
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19091
    | sensor  event  more |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19092
    (JavaWindowGroup isNil or: [ KnownWindows isNil ]) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19093
        "/ '*** eventThread: no windowGroup / views ...' printCR.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19094
        self halt: 'monitors are reimplemented, change me if you know how and why'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19095
        "self
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19096
            waitFor: FirstWindowCreationSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19097
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19098
            timeOut: nil."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19099
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19100
        "/ Delay waitForSeconds:0.1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19101
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19102
        ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19103
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19104
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19105
    "/ wait for an event to arrive ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19106
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19107
    sensor := JavaWindowGroup sensor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19108
    [ sensor hasEvents or: [ sensor damageCount ~~ 0 ] ] whileFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19109
        EventTrace ifTrue: [ '*** eventThread waiting ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19110
        Processor activeProcess state: #eventWait.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19111
        self
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19112
            waitFor: sensor eventSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19113
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19114
            timeOut: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19115
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19116
    EventTrace ifTrue: [ '*** eventThread event arrived ...' printCR. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19117
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19118
    "/ EventTrace := true
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19119
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19120
    more := true.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19121
    [ more ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19122
        sensor hasDamage ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19123
            EventTrace ifTrue: [ '*** eventThread: damage arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19124
            event := sensor nextDamage.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19125
        ] ifFalse: [ event := sensor nextEvent. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19126
        event isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19127
            EventTrace == true ifTrue: [ '*** eventThread: nil event ignored' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19128
            ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19129
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19130
        more := self processEvent: event
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19131
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19132
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19133
    "Created: / 06-01-1998 / 21:02:40 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19134
    "Modified: / 30-12-1998 / 19:21:36 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19135
    "Modified: / 22-11-2011 / 13:22:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19136
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19137
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19138
processEvent: event
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19139
    | evQ  jEvents  jWToolKitClass  jWToolKit  jWinPeer  jWin  v  eventConsumed |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19140
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19141
    KnownWindows isNil ifTrue: [ ^ false ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19142
    v := event view.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19143
    jWinPeer := self jPeerForView: v.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19144
    jWinPeer isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19145
        v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19146
            "/ mhmh - an event for a JavaView,
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19147
            "/ which has no peer (anyMore ?)
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19148
            "/ should not happen.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19149
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19150
            "/ mhmh - an event for a subcomponent of an ST widget.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19151
            "/ let it be handled normally.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19152
            EventTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19153
                ('*** eventThread: ' , event type
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19154
                    , '-event for unknown java-view - passed to view.') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19155
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19156
            event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19157
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19158
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19159
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19160
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19161
    "/ change:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19162
    "/ in the previous version, events for ST/X widgets (i.e. buttons etc)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19163
    "/ where not passed to java, but instead forwarded directly to the widget
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19164
    "/ by the code below.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19165
    "/ This has changed, to pass it to Java, which eventually passes it to the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19166
    "/ peer via the handleEvent native method (unless the event got consumed).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19167
    "/ This is req'd to let java keep track of keyboard/mouse input for widgets.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19168
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19169
    (event isDamage and: [ v isJavaView ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19170
        "/    "/ most views handle their events themself (being ST/X views) ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19171
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19172
        "/    v class ~~ JavaView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19173
        "/"/        v class ~~ StandardSystemView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19174
        "/"/            EventTrace ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19175
        "/"/                    ('*** eventThread: event handled by view itself (' , v class name , ')') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19176
        "/"/            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19177
        "/"/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19178
        "/"/            ^ self.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19179
        "/"/        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19180
        "/        (event type == #'exposeX:y:width:height'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19181
        "/        or:[event type == #'graphicsExposeX:y:width:height']) ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19182
        "/            "/ send to view, but also handle in JAVA
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19183
        "/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19184
        "/        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19185
        "/    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19186
        (#( #mapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19187
         #unmapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19188
         #configureX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19189
         #exposeX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19190
         #graphicsExposeX:y:width:height: ) includes: event type) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19191
            event sendEventWithFocusOn: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19192
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19193
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19194
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19195
    "/ what a kludge - some events are passed back to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19196
    "/ ST via the WComponent-handleEvent native method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19197
    "/ However, repaints are not.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19198
    "/ In order to let ST widgets do the drawing,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19199
    "/ selectively filter exposeEvents from Java ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19200
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19201
    eventConsumed := false.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19202
    v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19203
        "/ all events handled by Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19204
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19205
        eventConsumed := true.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19206
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19207
        "/ let widget handle it.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19208
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19209
        event view dispatchEvent: event.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19210
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19211
        "/ some are not passed to Java ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19212
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19213
        event isDamage ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19214
            (v isKindOf: Button) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19215
            (v isKindOf: TextView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19216
            (v isKindOf: Label) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19217
            (v isKindOf: ComboBoxView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19218
            (v isKindOf: ScrollBar) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19219
            (v isKindOf: Scroller) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19220
            (v isKindOf: MenuPanel) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19221
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19222
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19223
    jWin := jWinPeer instVarNamed: 'target'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19224
    EventTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19225
        ('*** eventThread: event (' , event type , ') handled by JAVA: ')
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19226
            infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19227
        jWinPeer class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19228
        ' (' infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19229
        jWin class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19230
        ')' infoPrintCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19231
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19232
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19233
    "/ create an event
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19234
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19235
    jEvents := self awtEventsForEvent: event javaWindow: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19236
    jEvents isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19237
        EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19238
            ('*** eventThread: event ignored: ' , event type) printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19239
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19240
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19241
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19242
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19243
"/    v superView isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19244
"/        ('*** eventThread: event ignored for topView: ' , event type) printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19245
"/        ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19246
"/    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19247
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19248
    jWToolKitClass := self classForName: 'java.awt.Toolkit'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19249
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19250
    "/ jWToolKit := jWToolKitClass perform:#getDefaultToolkit.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19251
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19252
    jWToolKit := jWToolKitClass
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19253
                performStatic: #'getDefaultToolkit()Ljava/awt/Toolkit;'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19254
    jEvents do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19255
        :jEv |
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19256
        jEv instVarNamed: 'source' put: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19257
        jEv instVarNamed: 'consumed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19258
        eventConsumed ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19259
            "/ the first gets the original event as data
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19260
            jEv instVarNamed: 'data' put: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19261
            eventConsumed := true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19262
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19263
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19264
        "/ post it (them) to the event queue
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19265
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19266
        EventTrace == true ifTrue: [ 'postEvent to Java ...' printCR. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19267
        jWToolKit "class" perform: #'postEvent(Ljava/awt/AWTEvent;)V' with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19268
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19269
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19271
    "Created: / 6.1.1998 / 20:36:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19272
    "Modified: / 10.12.1998 / 19:36:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19273
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19274
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19275
!JavaVM::Performance class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19276
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19277
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19278
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19279
    A helper class to keep performance counters for JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19280
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19281
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19282
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19283
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19284
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19285
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19286
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19287
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19288
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19289
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19290
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19291
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19292
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19293
!JavaVM::Performance class methodsFor:'instance creation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19294
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19295
for: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19296
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19297
    ^self new setVM: aJavaVM.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19298
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19299
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19300
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19301
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19302
!JavaVM::Performance methodsFor:'accessing-counters'!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19303
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19304
get: name
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19305
    "Return the value of given performance counter."
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19306
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19307
    ^self set: name to: -1
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19308
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19309
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19310
monitorEnterCount: fatOnly
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19311
    "Return the number of monitor enter operations.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19312
     If fatOnly is true, return only those that involves
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19313
     fat-lock enter (i.e,, uses JavaMonitor, not thinlock)"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19314
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19315
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19316
    extern unsigned int __monitorEnterCount(int fat, int new);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19317
    RETURN ( __MKUINT ( __monitorEnterCount( fatOnly == true ? 1 : 0, -1 ) ) )
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19318
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19319
    ^ 0
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19320
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19321
    "Created: / 28-08-2012 / 10:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19322
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19323
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19324
monitorExitCount: fatOnly
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19325
    "Return the number of monitor enter operations.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19326
     If fatOnly is true, return only those that involves
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19327
     fat-lock enter (i.e,, uses JavaMonitor, not thinlock)"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19328
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19329
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19330
    extern unsigned int __monitorEnterCount(int fat, int new);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19331
    RETURN ( __MKUINT ( __monitorEnterCount( fatOnly == true ? 1 : 0, -1 ) ) )
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19332
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19333
    ^ 0
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19334
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19335
    "Created: / 28-08-2012 / 10:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19336
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19337
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19338
set: name to: newValue
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19339
    "Set and return the value of given performance counter.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19340
     If newValue >= 0, performance counter is set to given
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19341
     value and previous value is returned. If newValue < 0,
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19342
     then the current value is returned"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19343
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19344
    | value |
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19345
%{
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19346
    extern OBJ __javaPerfCounter(OBJ _name, OBJ _newValue );
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19347
    value =  __javaPerfCounter( name, newValue );
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19348
%}.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19349
    value isSymbol ifTrue:[
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19350
        self error: value.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19351
        ^nil
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19352
    ].
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19353
    ^value
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19354
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19355
! !
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19356
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19357
!JavaVM::Performance methodsFor:'initialization'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19358
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19359
setVM: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19360
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19361
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19362
    itself, not its instance)"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19363
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19364
    vm := aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19365
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19366
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19367
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19368
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19369
!JavaVM::Performance methodsFor:'orinting-streams'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19370
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19371
printOpenExternalStream: stream number: index on: output
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19372
    "Print info about given external stream to output. Return true,
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19373
     if the instance is executor, false otherwise"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19374
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19375
    | executor |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19376
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19377
    executor := ((3 to: stream class instSize) allSatisfy:[:index|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19378
        index == 6 or:[index == 7 or:[(stream instVarAt: index) isNil]]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19379
    ]).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19380
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19381
    '%-4d %-30s %-15s %s' printf:{
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19382
        index .
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19383
        stream class name.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19384
        executor ifTrue:['(executor)'] ifFalse:[(self printOpenExternalStreamIdentificationOf: stream)].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19385
        executor ifTrue:[''] ifFalse:[stream isFileStream ifTrue:[stream pathName ? '??? no pathName ???'] ifFalse:['']]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19386
    } on: output.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19387
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19388
    ^ executor
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19389
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19390
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19391
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19392
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19393
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19394
    "Created: / 14-08-2012 / 01:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19395
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19396
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19397
printOpenExternalStreamIdentificationOf:stream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19398
    | zc oft |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19399
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19400
    (oft := Smalltalk at:#'JavaVM:OpenFileTable') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19401
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19402
        idx := oft identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19403
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19404
            ^ 'VM   OFT[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19405
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19406
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19407
    (zc := Smalltalk at:#'JavaVM:ZipCache') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19408
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19409
        idx := zc identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19410
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19411
            ^ 'VM   ZC[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19412
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19413
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19414
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19415
     ((Smalltalk at:#'Java:SourceCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19416
        each == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19417
            ^ 'Java SC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19418
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19419
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19420
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19421
    ((Smalltalk at:#'JavaClassReader:JavaArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19422
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19423
            ^ 'JCR  JAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19424
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19425
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19426
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19427
    ((Smalltalk at:#'Java:SourceArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19428
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19429
            ^ 'Java SAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19430
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19431
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19432
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19433
    ^''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19434
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19435
    "Created: / 14-08-2012 / 01:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19436
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19437
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19438
printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19439
    ^self printOpenExternalStreamsOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19440
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19441
    "Created: / 14-08-2012 / 01:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19442
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19443
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19444
printOpenExternalStreamsOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19445
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19446
    | nOpenStreams nExecutors |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19447
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19448
    aStream nextPutLine: '=== JavaVM open external stream statistics ==='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19449
    aStream nextPutLine: Timestamp now printString.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19450
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19451
    nOpenStreams := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19452
    nExecutors := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19453
    ExternalStream allSubInstancesDo:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19454
        each isOpen ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19455
            nOpenStreams := nOpenStreams + 1.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19456
            (self printOpenExternalStream: each number: nOpenStreams on: aStream) ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19457
                nExecutors := nExecutors + 1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19458
            ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19459
            aStream cr.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19460
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19461
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19462
    aStream cr.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19463
    aStream nextPutLine:
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19464
        ('SUMMARY: open=%1, executors=%4, java.io=%2, java.util.zip=%3'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19465
            bindWith: nOpenStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19466
                with: (((Smalltalk at:#'JavaVM:OpenFileTable') ? #()) inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19467
                with: (((Smalltalk at:#'JavaVM:ZipCache') ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19468
                with: nExecutors
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19469
        ).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19470
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19471
    aStream nextPutLine: '=============================================='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19472
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19473
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19474
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19475
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19476
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19477
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19478
    "Created: / 14-08-2012 / 00:48:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19479
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19480
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19481
!JavaVM::Performance methodsFor:'printing-counters'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19482
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19483
printCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19484
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19485
    self printCountersOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19486
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19487
    "Created: / 14-08-2012 / 00:43:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19488
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19489
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19490
printCountersOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19491
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19492
    aStream nextPutLine: '=== JavaVM performance statistics ============'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19493
    aStream nextPutLine: Timestamp now printString.
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19494
    self printCounters_ExecutionOn: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19495
    aStream cr.
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19496
    self printCounters_CompilationOn: aStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19497
    aStream cr.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19498
    self printCounters_MonitorOn: aStream.
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19499
    aStream cr.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19500
    self printCounters_TopTenNativesOn: aStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19501
    aStream nextPutLine: '=============================================='.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19502
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19503
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19504
    "
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19505
        JavaVM performance printCounters
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19506
    "
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19507
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19508
    "Created: / 14-08-2012 / 00:43:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19509
    "Modified: / 27-10-2012 / 18:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19510
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19511
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19512
printCounters_CompilationOn: aStream
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19513
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19514
    self printCounterGroup:'Just-In-Time Compilation' on: aStream.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19515
    self printCounter:'methodsCompiled' on: aStream labeled: 'methods compiled'.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19516
    self printCounter:'methodsCompiledAndBailedOut' on: aStream labeled: 'methods compiled (failed)'.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19517
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19518
    "Created: / 15-10-2012 / 15:33:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19519
!
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19520
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19521
printCounters_ExecutionOn: aStream
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19522
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19523
    self printCounterGroup:'Execution' on: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19524
    self printCounter:'methodsInterpreted' on: aStream labeled: 'methods (interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19525
    self printCounter:'bytecodesInterpreted' on: aStream labeled: 'bytecodes (interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19526
    self printCounter:'bytecodesInterpretedWrap' on: aStream labeled: 'bytecodes wrap(interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19527
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19528
    "Created: / 15-10-2012 / 15:33:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19529
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19530
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19531
printCounters_MonitorOn: aStream
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19532
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19533
    self printCounterGroup:'Monitors' on: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19534
    self printCounter:'monitorEnterCount' on: aStream labeled: 'MONITOR ENTER'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19535
    self printCounter:'monitorEnterCountFat' on: aStream labeled: 'MONITOR ENTER (fat)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19536
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19537
    self printCounter:'monitorExitCount' on: aStream labeled: 'MONITOR EXIT'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19538
    self printCounter:'monitorExitCountFat' on: aStream labeled: 'MONITOR EXIT (fat)'.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19539
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19540
    "Created: / 28-08-2012 / 10:42:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19541
    "Modified: / 15-10-2012 / 15:31:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19542
!
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19543
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19544
printCounters_Top: n nativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19545
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19546
    | nativesSorted  |
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19547
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19548
    self printCounterGroup:'top ', n printString , ' (unoptimized) natives' on: aStream.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19549
    nativesSorted := JavaNativeMethod allInstances asSortedCollection:
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19550
                        [:a :b| a nCalls > b nCalls ].
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19551
    1 to: n do:[:idx|
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19552
        | m |
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19553
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19554
        m := nativesSorted at: idx.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19555
        aStream nextPutAll: (m nCalls printStringRadix:10 size:8 fill:Character space).
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19556
        aStream nextPutAll:'   '.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19557
        aStream
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19558
            nextPutAll: m mclass name;
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19559
            nextPutAll: ' >> ';
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19560
            nextPutAll: m selector;
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19561
            cr.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19562
    ]
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19563
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19564
    "Created: / 27-10-2012 / 18:09:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19565
!
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19566
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19567
printCounters_TopTenNativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19568
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19569
    self printCounters_Top: 10 nativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19570
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19571
    "Created: / 27-10-2012 / 18:12:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19572
! !
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19573
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19574
!JavaVM::Performance methodsFor:'printing-counters-private'!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19575
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19576
printCounter: name on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19577
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19578
    self printCounter: name on: stream labeled: name
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19579
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19580
    "Created: / 15-10-2012 / 15:28:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19581
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19582
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19583
printCounter: name on: stream labeled: label
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19584
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19585
    [
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19586
        '  %-35s : %10d' printf: { label . (self get: name) } on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19587
    ] on: Error do:[
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19588
        '  %-35s : N/A' printf: { label } on: stream
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19589
    ].
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19590
    stream cr.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19591
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19592
    "Created: / 15-10-2012 / 15:25:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19593
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19594
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19595
printCounterGroup: gname on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19596
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19597
    stream nextPut:$-; nextPut:$-; space; nextPutAll: gname; space; nextPut:$-; nextPut:$-; cr.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19598
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19599
    "Created: / 15-10-2012 / 15:29:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19600
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19601
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19602
!JavaVM::Reflection class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19603
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19604
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19605
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19606
    A helper class to deal with Java reflection
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19607
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19608
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19609
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19610
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19611
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19612
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19613
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19614
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19615
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19616
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19617
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19618
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19619
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19620
!JavaVM::Reflection class methodsFor:'instance creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19622
for: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19624
    ^self new setVM: aJavaVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19626
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19629
new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19630
    "return an initialized instance"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19632
    ^ self basicNew initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19633
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19635
!JavaVM::Reflection methodsFor:'debugging'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19637
returnNilIfMissing
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19638
    ^ returnNilIfMissing.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19640
    "Created: / 28-01-2011 / 15:14:37 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19641
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19643
returnNilIfMissing:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19644
    returnNilIfMissing:= aBoolean.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19646
    "Created: / 28-01-2011 / 15:25:35 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19647
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19649
!JavaVM::Reflection methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19650
1926
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19651
flush
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19652
    self initialize.
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19653
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19654
    "Created: / 09-01-2013 / 16:00:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19655
!
32f3cef32ca5 Improvements in Java>>flushAllJavaResources.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1902
diff changeset
 19656
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19657
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19658
    constantPoolMapping := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19659
    javaClasses := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19660
    javaArrayClasses := IdentityDictionary new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19661
    realMethods := OrderedCollection new.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19662
    javaMethodsPerMethod := Dictionary new
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19664
    "Created: / 21-12-2010 / 19:46:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19665
    "Modified: / 09-02-2011 / 00:24:28 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19666
    "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
 19667
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19669
setVM: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19670
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19671
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19672
    itself, not its instance)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19673
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19674
    vm := aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19676
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19677
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19679
!JavaVM::Reflection methodsFor:'reflection - classes'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19680
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19681
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19682
    ^javaArrayClasses at: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19683
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19684
    "Created: / 05-07-2012 / 23:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19685
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19686
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19687
classForJavaClassObject: aJavaClassObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19688
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19689
        Given an instance of java.lang.Class, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19690
        real (Java) class associated with it. The instance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19691
        of java.lang.Class should be first created by myself
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19692
        (by sending #javaClassObjectForClass:)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19693
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19694
    (javaClasses at: aJavaClassObject ifAbsent: [ 123 ])
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19695
        == (JavaVM classNamed: 'stx/libjava/tests/junir/JUnit3Tests')
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19696
            ifTrue: [ self breakPoint: #jv ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19697
    ^ javaClasses at: aJavaClassObject
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19698
        ifAbsent: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19699
            vm internalError: 'No class associated with given java.lang.Class!!'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19700
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19701
            "/Please, no nils
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19702
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19703
            self returnNilIfMissing ifTrue: nil
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19704
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19706
    "Created: / 28-01-2011 / 15:22:39 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19707
    "Modified: / 05-02-2011 / 20:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 19708
    "Modified: / 21-10-2011 / 13:41:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19709
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19710
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19711
javaClassObjectArrayForClasses: classes
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19712
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19713
        Answers an instance of java.lang.Class[] for given
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19714
        real (Java) classes."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19715
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19716
    | array |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19717
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19718
    array := (vm classForName: 'java.lang.Class') javaArrayClass
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19719
                new: classes size.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19720
    classes isNilOrEmptyCollection ifTrue: [ ^ array ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19721
    classes
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19722
        withIndexDo: [:cls :idx | array at: idx put: (self javaClassObjectForClass: cls) ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19723
    ^ array
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19724
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19725
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19726
    "Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19727
    "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19728
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19729
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19730
javaClassObjectForClass:aClass
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19731
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19732
    ^self javaClassObjectForClass:aClass init: true.
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19733
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19734
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19735
    "Modified: / 12-08-2011 / 19:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19736
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19737
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19738
javaClassObjectForClass: aClass init: init
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19739
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19740
        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
 19741
        real (Java) class."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19742
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19743
    | javaClassObj |
1030
9f87a1830611 fixed bug in java registry and we BOOT :)
hlopkmar
parents: 1029
diff changeset
 19744
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19745
    self assert: aClass isBehavior message: 'aClass is not behavior'.
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19746
    self assert: aClass ~~ Array message: 'aClass should not be Array (old impl)'.
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19747
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
 19748
    javaClasses at: aClass ifPresent: [:javaClassObj | ^ javaClassObj ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19749
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19750
    "/ class must be initialized (with all of its superclasses ?).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19751
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19752
    "/ false ifTrue: [ aClass isJavaClass ifTrue: [ aClass classInit ]. ].
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19753
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19754
    "/ Here, install Java lookup as Java may send a messages to that
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19755
    "/ object
1675
fe6aa1d083cf - JavaVM>>javaClassObjectForClass: fix: do not install JavaLookup if the class is for one of java primitive types
vranyj1
parents: 1656
diff changeset
 19756
    (aClass isJavaClass not and:[aClass isJavaArrayClass not and:[aClass isJavaPrimitiveType not]]) ifTrue:[
1677
78ab46cd3d00 Fixes in interop (caused VM crash, dunno why)
vranyj1
parents: 1675
diff changeset
 19757
        aClass == Object ifTrue:[ self halt. ].
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19758
        aClass lookupObject: JavaLookup instance.
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19759
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19760
    javaClassObj := (vm classForName: 'java.lang.Class') new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19761
    self rememberJavaClassObject: javaClassObj for: aClass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19762
    ^ javaClassObj
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19764
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19765
    "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
 19766
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19767
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19768
javaClassObjectForClassNamed: className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19769
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19770
        Answers an instance of java.lang.Class for given
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19771
        (java) class name. The className may be name of primitive
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19772
        type, i.e. 'int', 'double'."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19773
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19774
    | cls |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19775
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19776
    cls := JavaDescriptor baseTypesByTypeName at: className
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19777
                ifAbsent: [ vm classForName: className ].
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19778
    ^ self javaClassObjectForClass: cls.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19779
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19780
    "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
 19781
    "Modified: / 08-04-2011 / 14:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19782
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19783
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19784
rememberJavaClassObject: jclass for: class
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19785
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19786
    javaClasses at: class put: jclass.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19787
    javaClasses at: jclass put: class.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19788
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19789
    "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
 19790
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19792
!JavaVM::Reflection methodsFor:'reflection - constant pool'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19793
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19794
constantPoolFor:javaConstantPoolObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19795
    ^ constantPoolMapping at:javaConstantPoolObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19796
        ifAbsent:[self error:'Given ConstantPool was not created by JVM']
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19798
    "Created: / 21-12-2010 / 19:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19799
    "Modified: / 28-01-2011 / 14:56:54 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19800
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19802
javaConstantPoolObjectFor: aConstantPool
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19803
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19804
    ^constantPoolMapping at: aConstantPool ifAbsent:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19805
        [| javaConstantPoolObject |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19806
        javaConstantPoolObject := (vm classForName:'sun.reflect.ConstantPool') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19807
        constantPoolMapping at: aConstantPool put: javaConstantPoolObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19808
        constantPoolMapping at: javaConstantPoolObject put: aConstantPool.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19809
        javaConstantPoolObject]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19811
    "Created: / 21-12-2010 / 19:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19812
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19814
!JavaVM::Reflection methodsFor:'reflection - methods & ctors'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19815
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19816
classForJavaConstructorObject:constructor
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19817
     "given a java.lang.reflect.Constructor, return the corresponding class for it."
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19818
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19819
    | jclass |
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19820
    jclass := constructor instVarNamed: #clazz.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19821
    ^self classForJavaClassObject: jclass.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19822
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19823
    "Created: / 22-08-2012 / 12:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19824
!
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19825
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19826
javaConstructorObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19827
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19828
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19830
    | jCtor |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19831
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19832
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19834
    jCtor := (Java classForName:'java.lang.reflect.Constructor') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19835
    self javaMethodObjectLikeSlotsInto: jCtor forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19836
    self rememberJavaMethodObject: jCtor for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19837
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19838
    ^ jCtor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19840
    "Created: / 09-02-2011 / 10:28:12 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19841
    "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
 19842
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19843
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19844
javaMethodObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19845
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19846
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19847
     | jMethod |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19848
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19849
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19850
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19851
    jMethod := (Java classForName:'java.lang.reflect.Method') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19852
    self javaMethodObjectLikeSlotsInto: jMethod forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19853
    self rememberJavaMethodObject: jMethod for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19854
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19855
    jMethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19856
        instVarNamed: #name       put: (self javaStringObjectForString: (method selector upTo:$() interned: true);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19857
        instVarNamed: #returnType put: (method descriptor returnClassObject);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19858
        instVarNamed: #annotationDefault put: (method annotations default bytes);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19860
        yourself.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19862
    ^jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19864
    "Created: / 09-02-2011 / 10:29:46 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19865
    "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
 19866
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19867
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19868
javaMethodObjectLikeSlotsInto: jMethod forMethod: method
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19869
    "
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19870
       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
 19871
       java.lang.Constructor"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19872
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19873
    | desc |
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19874
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19875
    desc := method descriptor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19876
    jMethod
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19877
        instVarNamed: #clazz put: (self javaClassObjectForClass: method javaClass);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19878
        instVarNamed: #slot put: 0;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19879
        instVarNamed: #modifiers put: method accessFlags;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19880
        instVarNamed: #parameterTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19881
            put: (self javaClassObjectArrayForClasses: desc parameterClasses);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19882
        instVarNamed: #exceptionTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19883
            put: (self javaClassObjectArrayForClasses: method javaExceptionTable);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19884
        instVarNamed: #annotations put: (method annotations runtimeVisible bytes);
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19885
        yourself.
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19886
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19887
    method signature notNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19888
        jMethod
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19889
            instVarNamed: #signature
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19890
            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
 19891
    ].
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19892
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19893
    ^ jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19894
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19895
    "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
 19896
    "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
 19897
    "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
 19898
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19899
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19900
methodForJavaConstructorObject:constructor
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19901
     "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19902
      it."
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19903
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19904
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19905
    slot := constructor instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19906
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19907
"/    ^realMethods at: slot ifAbsent:[self error: 'No ctor found for java ctor object'].
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19908
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19909
"/    |class signature|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19910
"/    class := self classForJavaClassObject:(constructor instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19911
"/    signature := Java as_ST_String:(constructor instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19912
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19913
"/        mthd signature = signature ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19914
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19915
"/        ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19916
"/    ].
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19917
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19918
    "Created: / 09-02-2011 / 10:36:07 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19919
    "Modified: / 01-08-2012 / 11:05:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19920
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19921
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19922
methodForJavaMethodObject:jmethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19923
     "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19924
         Given an instance of java.lang.reflect.Method, answers
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19925
         real method associated with it.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19926
    "
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19927
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19928
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19929
    slot := jmethod instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19930
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19931
"/    ^realMethods at: slot ifAbsent:[self error: 'No method found for java method object'].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19932
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19933
"/    |class name signature |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19934
"/
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19935
"/    class := self classForJavaClassObject:(aJavaMethodObject instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19936
"/    name := Java as_ST_String:(aJavaMethodObject instVarNamed:#name).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19937
"/    signature := Java as_ST_String:(aJavaMethodObject instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19938
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19939
"/        (mthd name = name and:[mthd signature = signature]) ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19940
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19941
"/        ]
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19942
"/    ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19943
"/    self assert: false description: 'No such method, malformed java.lang.reflect.Method object?'.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19944
"/    ^nil.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19945
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19946
    "Created: / 09-02-2011 / 10:32:14 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19947
    "Modified: / 01-08-2012 / 11:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19948
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19949
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19950
rememberJavaMethodObject: jmethod for: method
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19951
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19952
    javaMethodsPerMethod at: method put: jmethod.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19953
    realMethods add: method.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19954
    jmethod instVarNamed: #slot put: realMethods size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19955
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19956
    "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
 19957
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19959
!JavaVM::Reflection methodsFor:'reflection - other'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19960
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19961
javaStringObjectForString:string
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19962
    ^ self javaStringObjectForString: string interned: false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19963
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19964
    "Created: / 09-02-2011 / 10:34:57 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19965
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19966
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19967
javaStringObjectForString:string interned:intern
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19968
    | s |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19969
    s := Java as_String: string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19970
    ^intern ifTrue:[Java intern: s] ifFalse:[s]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19971
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19972
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19973
    "Created: / 09-02-2011 / 10:34:29 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19974
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19976
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19977
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19978
version
1864
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19979
    ^ '$Header$'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19980
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19981
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19982
version_CVS
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
 19983
    ^ '§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
 19984
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19985
1864
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19986
version_HG
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19987
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19988
    ^ '$Changeset: <not expanded> $'
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19989
!
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19990
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19991
version_SVN
1885
32d39c55b8b0 Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1878
diff changeset
 19992
    ^ '§Id§'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19993
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19994
1989
131b7459fdab Value of class.path and sun.misc.boot.path refactored to match values used in Oracle JVM.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1953
diff changeset
 19995
924
7e66564a2302 fix for native sun.reflect.NativeMethodAccessorImpl.invoke0()
vranyj1
parents: 923
diff changeset
 19996
JavaVM initialize!