WrappedMethod.st
author Claus Gittinger <cg@exept.de>
Fri, 11 Apr 1997 17:30:55 +0200
changeset 580 8810e941bcfb
parent 576 9519831877b1
child 644 ffba6b23cc6d
permissions -rw-r--r--
#isTimed query
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     1
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
14
530bf06f9c78 *** empty log message ***
claus
parents: 10
diff changeset
     3
	      All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     4
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     5
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     6
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     8
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
     9
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    10
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    11
"
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    12
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    13
Method subclass:#WrappedMethod
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    14
	instanceVariableNames:''
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    15
	classVariableNames:''
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    16
	poolDictionaries:''
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    17
	category:'Kernel-Methods'
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    18
!
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    19
508
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
    20
!WrappedMethod class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    21
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    22
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    23
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    24
 COPYRIGHT (c) 1994 by Claus Gittinger
14
530bf06f9c78 *** empty log message ***
claus
parents: 10
diff changeset
    25
	      All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    26
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    27
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    28
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    30
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    31
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    32
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    33
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    34
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    35
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    36
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    37
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    38
    support for MessageTracer
234
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    39
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    40
    [author:]
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    41
        Claus Gittinger
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    42
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    43
    [see also:]
6350e3b2223c documentation
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
    44
        MessageTracer
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    45
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    46
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 8
diff changeset
    47
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    48
!WrappedMethod methodsFor:'accessing'!
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    49
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    50
basicLiterals
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    51
    "return my literals"
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    52
352
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    53
    ^ super literals
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    54
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    55
    "Modified: 24.6.1996 / 14:10:34 / stefan"
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    56
!
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    57
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    58
literals
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    59
    "return the wrapped methods literals"
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    60
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    61
    ^ self originalMethod literals
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    62
!
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    63
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    64
methodArgAndVarNames
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    65
    "return the names of the args and locals of the wrapped method."
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    66
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    67
    ^ self originalMethod methodArgAndVarNames
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    68
!
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    69
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    70
methodVarNames
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    71
    "return the names of the locals of the wrapped method."
14
530bf06f9c78 *** empty log message ***
claus
parents: 10
diff changeset
    72
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    73
    ^ self originalMethod methodVarNames 
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    74
!
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    75
508
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
    76
numVars
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    77
    "return the number of locals in the wrapped method."
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    78
508
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
    79
    ^ self originalMethod numVars
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
    80
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
    81
    "Created: 4.11.1996 / 21:40:10 / cg"
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
    82
!
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    83
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    84
originalMethod
14
530bf06f9c78 *** empty log message ***
claus
parents: 10
diff changeset
    85
    "return the method the receiver is wrapping"
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    86
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    87
    "a kludge: it must be in the literal array somewhere"
352
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    88
    self literalsDo:[:aLiteral |
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    89
        aLiteral isMethod ifTrue:[
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    90
            ^ aLiteral
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    91
        ]
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    92
    ].
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    93
    ^ nil
352
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    94
ac12b5bc2754 Move method's literals form literalArray to indexed instvars.
Stefan Vogel <sv@exept.de>
parents: 234
diff changeset
    95
    "Modified: 25.6.1996 / 22:08:03 / stefan"
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    96
!
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    97
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    98
source
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
    99
    "return the wrapped methods source"
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
   100
551
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   101
    |m|
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   102
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   103
    (m := self originalMethod) notNil ifTrue:[
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   104
        ^ m source
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   105
    ].
1699c88b3d07 checkin from browser
ca
parents: 508
diff changeset
   106
    ^ nil
8
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
   107
! !
3fba2acf0eeb Initial revision
claus
parents:
diff changeset
   108
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   109
!WrappedMethod methodsFor:'queries'!
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   110
576
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   111
isBreakpointed
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   112
    "return true, if the receiver is a wrapped method for a breakpoint.
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   113
     Ask the messageTracer, since I dont know if its a break or trace"
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   114
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   115
    ^ (MessageTracer isTrapped:self)
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   116
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   117
    "Created: 7.4.1997 / 17:25:40 / cg"
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   118
!
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   119
580
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   120
isTimed
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   121
    "return true, if the receiver is a wrapped method for a time measurement.
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   122
     Ask the messageTracer, since I dont know if its a break or trace"
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   123
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   124
    ^ (MessageTracer isTiming:self)
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   125
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   126
    "Created: 11.4.1997 / 17:06:14 / cg"
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   127
!
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   128
576
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   129
isTraced
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   130
    "return true, if the receiver is a wrapped method for a trace point.
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   131
     Ask the messageTracer, since I dont know if its a break or trace"
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   132
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   133
    ^ (MessageTracer isTrapped:self) not
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   134
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   135
    "Created: 7.4.1997 / 17:25:54 / cg"
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   136
!
9519831877b1 moved isBreakPointed / isTrapped queries into method
Claus Gittinger <cg@exept.de>
parents: 551
diff changeset
   137
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   138
isWrapped
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   139
    "return true, if the receiver is a wrapped method.
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   140
     True is returned here, since the receiver is always a wrapped one"
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   141
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   142
    ^ true
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   143
! !
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   144
508
b9ac899e85c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 352
diff changeset
   145
!WrappedMethod class methodsFor:'documentation'!
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   146
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   147
version
580
8810e941bcfb #isTimed query
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
   148
    ^ '$Header: /cvs/stx/stx/libbasic3/WrappedMethod.st,v 1.16 1997-04-11 15:30:55 cg Exp $'
210
3638d229ce41 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   149
! !