version 1.7, 1998/08/02 15:06:01
|
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 |