> Good news: I'm onto it! :)

Hmmm .. interesting:

In reparent1:

  let update_bsym bbdcl =
    Flx_bsym_table.remove bsym_table k;
    Flx_bsym_table.add bsym_table k parent (Flx_bsym.replace_bbdcl bsym bbdcl)
  in

[GONG sounds]

This is quite wrong, but it isn't obvious why unless you read some of my 
previous rants.

The reason for doing it this way is that the removal gets rid of parent/child 
relations,
and the addition puts the new ones back.. this is a reparenting routine.

Unfortunately that code would never work right, because the "remove" kills off 
the
children too, whereas the "add" only puts main symbol back: the children are 
lost.

The only reason this works is that this routine is always creating NEW symbols,
so the remove never does anything :)

Dang.. thought I had it :)


--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to