Branch: Tag:

2003-02-27

2003-02-27 15:33:02 by Henrik Grubbström (Grubba) <grubba@grubba.org>

More encode-value related fixes.

Rev: lib/master.pike.in:1.259

6:   // Pike is distributed under GPL, LGPL and MPL. See the file COPYING   // for more information.   // - // $Id: master.pike.in,v 1.258 2003/02/27 14:52:30 marcus Exp $ + // $Id: master.pike.in,v 1.259 2003/02/27 15:33:02 grubba Exp $      #pike __REAL_VERSION__   
888:       p = low_cast_to_program(oname, current_file, current_handler, 1);    if(!p) return 0; +  // NB: p might be a function in a fake_object...    if(!objectp (o=objects[p])) o=objects[p]=p();    return o;   }
943:    werror("%*ndirnode(%O)->module_checker()->`!()\n",    sizeof(backtrace()),dirname);   #endif -  // Pretend not to exist for now... -  // module=0; +  if (catch {    if(module=findmodule(dirname+"/module", handler))    {    if(mixed tmp=module->_module_value)
957:    cache=([]);    _cache_full=0;    } +  }) { +  // findmodule() failed. This can occur due to circularities +  // between encode_value()'ed programs. +  // The error will then typically be: +  // "Cannot call functions in unfinished objects."    -  +  // Pretend not to exist for now... +  return 1; +  } +     return !module;    }