View Issue Details

IDProjectCategoryView StatusLast Update
0000038LDMud 3.3Runtimepublic2004-05-17 09:27
Reporterpeng Assigned Tolars 
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Summary0000038: function_exists() on destructed object calls fatal
Descriptionthis doesn't make sense imho:

in object.c (731ff 3.3.489)

#ifdef DEBUG
    if (ob->flags & O_DESTRUCTED)
        fatal("function_exists() on destructed object\n");
#endif

There is no need for the fatal, especially cause its only if the driver is compiled with DEBUG on.
TagsNo tags attached.

Activities

lars

2004-04-03 18:44

reporter   ~0000044

That piece of code is a sanity check: the internal function_exists() function should never be called with a destructed object, as that object may no longer have the pointers function_exists() requires to do its work.

I added proper checks to both f_function_exists() and f_variable_exists() (the actual efun functions) to throw a runtime error if called for a destructed object.

Fixed in 3.2-dev.624 and 3.3.509.

Issue History

Date Modified Username Field Change
2003-12-21 08:18 peng New Issue
2004-04-03 18:44 lars Status new => resolved
2004-04-03 18:44 lars Resolution open => fixed
2004-04-03 18:44 lars Assigned To => lars
2004-04-03 18:44 lars Note Added: 0000044
2004-05-17 09:27 lars Status resolved => closed