View Issue Details

IDProjectCategoryView StatusLast Update
0000806LDMud 3.3Efunspublic2012-07-12 20:45
Reporterabathur Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
Product Version3.3.719 
Summary0000806: simul_efun call_other causes recursion on call_other to same function in shadowed object by shadowing object
DescriptionI was playing around with a simul_efun wrapper for call_other to see if I could improve support for H_DEFAULT_METHOD in shadows and ran into some recursion issues with even a simple wrapper, which seems to break the driver's default behavior for call_other on shadowed objects.

Apologies if this is a problem on my end.
Steps To Reproduce1.) In simul_efun, define:
varargs mixed call_other(object ob, string fun, varargs mixed * arg)
{
    return efun::call_other(ob, fun, arg...);
}

2.) Load shadow blueprint.

3.) Call method in a shadow which then calls the same method in the shadowed object.
TagsNo tags attached.

Activities

Gnomi

2012-07-12 20:27

manager   ~0002142

Try calling set_this_object(previous_object()); before efun::call_other.

Without it you're calling 'fun' from the simul_efun and not the shadow, and therefore the shadow function are called.

abathur

2012-07-12 20:45

reporter   ~0002144

Thanks--apologies for the bunk report.

abathur

2012-07-12 20:45

reporter   ~0002145

<3

Issue History

Date Modified Username Field Change
2012-07-11 21:07 abathur New Issue
2012-07-12 20:27 Gnomi Note Added: 0002142
2012-07-12 20:45 abathur Note Added: 0002144
2012-07-12 20:45 abathur Note Added: 0002145
2012-07-12 20:45 abathur Status new => closed
2012-07-12 20:45 abathur Resolution open => no change required