Changeset 3050


Ignore:
Timestamp:
Jul 11, 2012, 4:00:56 AM (21 months 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.