Changeset 3050


Ignore:
Timestamp:
Jul 11, 2012, 2:00:56 AM (3 years ago)
Author:
wmb
Message:

OFW core - another fix to the "relative phandles" suite, this one affecting the rarely used function "delete-package".

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ofw/core/ofwcore.fth

    r3038 r3050  
    746746;
    747747: pop-package  ( -- )  (pop-package) definitions  ;
    748 : push-device  ( acf -- )  to current-device  ;
     748: push-device  ( phandle -- )  to current-device  ;
    749749
    750750: pop-device  ( -- )
     
    12931293   pop-device                      (                    R: phandle )
    12941294   'child   begin                  ( link               R: phandle )
    1295       dup link@                    ( link phandle'      R: phandle )
    1296       dup r@ <>                    ( link phandle' flag R: phandle )
     1295      dup link@                    ( link voc'          R: phandle )
     1296      dup r@ phandle>voc <>        ( link voc'          flag R: phandle )
    12971297   while                           ( link phandle'      R: phandle )
    1298       push-device drop  'peer      ( link               R: phandle)
     1298      voc>phandle push-device      ( link               R: phandle)
     1299      drop  'peer                  ( link'              R: phandle)
    12991300   repeat                          ( link phandle'      R: phandle )
    13001301   r> 2drop                        ( link )
    1301    pop-package
     1302   pop-package                     ( link )
    13021303;
    13031304: delete-package  ( phandle -- )
     
    19491950: ls  ( -- )
    19501951   device-context?  if
    1951       'child token@                   ( first-node )
    1952       begin  non-null?  while         ( node )
     1952      'child token@                   ( first-node-voc )
     1953      begin  non-null?  while         ( node-voc )
    19531954         voc>phandle push-device      ( )
    19541955         .nodeid                      ( )
    1955          'peer token@                 ( node' )
    1956          pop-device
     1956         'peer token@                 ( node-voc' )
     1957         pop-device                   ( )
    19571958      repeat                          ( )
    19581959   else
     
    19621963: delete-my-children  ( -- )
    19631964   device-context?  if
    1964       'child token@                   ( first-node )
    1965       begin  non-null?  while         ( node )
    1966          dup push-device              ( node )
    1967          'peer token@                 ( node peer )
    1968          pop-device                   ( node peer )
    1969          swap delete-package          ( peer )
     1965      'child token@                   ( first-node-voc )
     1966      begin  non-null?  while         ( node-voc )
     1967         voc>phandle dup push-device  ( node-phandle )
     1968         'peer token@                 ( node-phandle peer-voc )
     1969         pop-device                   ( node-phandle peer-voc )
     1970         swap delete-package          ( peer-voc )
    19701971      repeat                          ( )
    19711972   then
     
    21632164;
    21642165
     2166\ XXX - I think this could be implemented by   (push-package) (property) (pop-package)
    21652167: set-package-property  ( value$ name$ phandle -- )
    21662168   current token@ >r  context token@ >r   (select-package)  ( value$ name$ )
Note: See TracChangeset for help on using the changeset viewer.