version 1.6, 1997/07/31 16:17:10
|
version 1.9, 1998/10/07 18:58:58
|
Line 177 does> ( ... object -- ... )
|
Line 177 does> ( ... object -- ... )
|
\ copy it to make it unique; used for implementing a copy-on-write policy |
\ copy it to make it unique; used for implementing a copy-on-write policy |
over @ class-parent @ class->map ( class-map offset parent-map ) |
over @ class-parent @ class->map ( class-map offset parent-map ) |
over + @ >r \ the map for the interface for the parent |
over + @ >r \ the map for the interface for the parent |
+ dup @ ( mapp map ) |
+ dup @ ( interface-mapp interface-map ) |
dup r> = |
dup r> = |
if |
if |
@ interface-map 2@ save-mem drop |
dup @ interface-map 2@ nip save-mem drop |
swap ! |
swap ! |
else |
else |
2drop |
2drop |
Line 211 variable last-interface-offset 0 last-in
|
Line 211 variable last-interface-offset 0 last-in
|
: interface ( -- ) \ objects |
: interface ( -- ) \ objects |
\g starts an interface definition. |
\g starts an interface definition. |
interface% %allot >r |
interface% %allot >r |
0 0 r@ interface-map 2! |
r@ current-interface ! |
|
current-interface 1 cells save-mem r@ interface-map 2! |
-1 cells last-interface-offset +! |
-1 cells last-interface-offset +! |
last-interface-offset @ r@ interface-offset ! |
last-interface-offset @ r@ interface-offset ! |
0 r@ interface-map-offset ! |
0 r> interface-map-offset ! ; |
r> current-interface ! ; |
|
|
|
: end-interface-noname ( -- interface ) \ objects |
: end-interface-noname ( -- interface ) \ objects |
\g ends an interface definition. The resulting interface is |
\g ends an interface definition. The resulting interface is |
Line 364 variable public-wordlist
|
Line 364 variable public-wordlist
|
POSTPONE to-this |
POSTPONE to-this |
POSTPONE ; ; immediate |
POSTPONE ; ; immediate |
|
|
: catch ( ... xt -- ... n ) |
: catch ( ... xt -- ... n ) \ exception |
\ make it safe to call CATCH within a method. |
\ make it safe to call CATCH within a method. |
\ should also be done with all words containing CATCH. |
\ should also be done with all words containing CATCH. |
this >r catch r> to-this ; |
this >r catch r> to-this ; |