PolymorphicInlineCache.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18366 a6e62e167c32
child 20131 4118d61ddba0
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2011 by Jan Vrany & Jan Kurs
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
     3
		       SWING Research Group, Czech Technical University in Prague
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 obtaining a copy of this software and associated documentation
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 files (the 'Software'), to deal in the Software without
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 restriction, including without limitation the rights to use,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 copies of the Software, and to permit persons to whom the
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 Software is furnished to do so, subject to the following
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 conditions:
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
 The above copyright notice and this permission notice shall be
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
 included in all copies or substantial portions of the Software.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"{ Package: 'stx:libbasic' }"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
Object subclass:#PolymorphicInlineCache
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	instanceVariableNames:'address numArgs'
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	classVariableNames:''
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	poolDictionaries:''
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	category:'Kernel-Classes'
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!PolymorphicInlineCache class methodsFor:'documentation'!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
copyright
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 COPYRIGHT (c) 2011 by Jan Vrany & Jan Kurs
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    40
		       SWING Research Group, Czech Technical University in Prague
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 Permission is hereby granted, free of charge, to any person
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
 obtaining a copy of this software and associated documentation
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
 files (the 'Software'), to deal in the Software without
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
 restriction, including without limitation the rights to use,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
 copy, modify, merge, publish, distribute, sublicense, and/or sell
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
 copies of the Software, and to permit persons to whom the
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
 Software is furnished to do so, subject to the following
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
 conditions:
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
 The above copyright notice and this permission notice shall be
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
 included in all copies or substantial portions of the Software.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
 OTHER DEALINGS IN THE SOFTWARE.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
documentation
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    This class provides a basic access to inline cache structure as
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    used by the virtual machine.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    [author:]
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    72
	Jan Vrany <jan.vrany@fit.cvut.cz>
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    73
	Janb Kurs <kursjan@fit.cvut.cz>
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    [instance variables:]
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    76
	address     <ExternalAddress> a pointer to the VM inline cache structure.
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    77
				    if the adress is NULL, then PolymorphicInlineCache
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    78
				    is invalid.
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    79
	numArgs    <SmallInteger> a number of arguments
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    [class variables:]
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    [see also:]
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!PolymorphicInlineCache methodsFor:'binding / unbinding'!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
bindTo: aMethod forClass: aClass
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    90
    | selector |
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    selector := aMethod selector.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
%{
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
    94
    __ilcBind(self, aClass, aMethod,  selector);
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    RETURN(self);
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
%}.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    self primitiveFailed.
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "Created: / 02-10-2011 / 18:05:26 / Jan Kurs <kursjan@fit.cvut.cz>"
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!PolymorphicInlineCache class methodsFor:'documentation'!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
version
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
   105
    ^ '$Header: /cvs/stx/stx/libbasic/PolymorphicInlineCache.st,v 1.2 2015-05-17 23:57:27 cg Exp $'
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
version_CVS
18358
a81c233c6da4 format only
Claus Gittinger <cg@exept.de>
parents: 15955
diff changeset
   109
    ^ '$Header: /cvs/stx/stx/libbasic/PolymorphicInlineCache.st,v 1.2 2015-05-17 23:57:27 cg Exp $'
15955
5092a16d31ab initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
! !