MantisBT - Zandronum
View Issue Details
0000634Zandronum[All Projects] Bugpublic2011-12-14 16:342012-01-14 20:19
Watermelon 
 
highcrashrandom
closedno change required 
MicrosoftWindowsXP/Vista/7
98d 
 
0000634: Accessing member variable without valid object
The game seems to crash for everyone in the server with the error message "Accessing member variable without valid object".

In terms of recent patches, the only thing changed in the wad was using:

        for(int c = 0; c < 10; c++) {
            SetActorProperty(tid, APROP_Alpha, 0.9 - (0.1 * c));
            Delay(2);
        }
        SetActorProperty(tid, APROP_Alpha, 0); // Make sure its fully invisible

I had to add in SetActorProperty(tid, APROP_Alpha, 0); because the for loop would not set it totally invisible (it still had a value of 5 alpha (whatever that is in FP, 0.0001 probably) and since software could see it, i had to force the alpha to zero.

Since then, for no known reason the error message comes up with "Accessing member variable without valid object" and crashes everyone from the server. It's random, happens seldom-- but only started happening today and not for the past 4+ months that the wad has been up.



What causes this error message?
Could it be related to translucency at all? Or maybe it's something else entirely.
NOTE: It is not level dependent.
NOTE2: I'm checking to see if software has the same problems... we'll see if it occurs again and if so; i'll know if software was affected
N/A
Only place i could find similar code is from GZDoom's source:

SOURCE:
'http://mancubus.net/svn/hosted/gzdoom/trunk/src/thingdef/thingdef_expression.cpp [^]'

//==========================================================================
//
//
//
//==========================================================================

ExpVal FxClassMember::EvalExpression (AActor *self)
{
    char *object = NULL;
    if (classx->ValueType == VAL_Class)
    {
        // not implemented yet
    }
    else
    {
        object = classx->EvalExpression(self).GetPointer<char>();
    }
    if (object == NULL)
    {
        I_Error("Accessing member variable without valid object");
    }

    ExpVal ret;
    
    if (!AddressRequested)
    {
        ret = GetVariableValue(object + membervar->offset, membervar->ValueType);
    }
    else
    {
        ret.pointer = object + membervar->offset;
        ret.Type = VAL_Pointer;
    }
    return ret;
}
No tags attached.
Issue History
2011-12-14 16:34WatermelonNew Issue
2011-12-14 17:14WatermelonNote Added: 0002323
2011-12-14 22:51Edward-sanNote Added: 0002324
2012-01-14 16:44Torr SamahoNote Added: 0002374
2012-01-14 16:44Torr SamahoStatusnew => feedback
2012-01-14 19:05WatermelonNote Added: 0002382
2012-01-14 19:05WatermelonStatusfeedback => new
2012-01-14 20:18Torr SamahoNote Added: 0002387
2012-01-14 20:19Torr SamahoStatusnew => closed
2012-01-14 20:19Torr SamahoResolutionopen => no change required
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug

Notes
(0002323)
Watermelon   
2011-12-14 17:14   
NOTE:
Affects software AND OpenGL equally.
(0002324)
Edward-san   
2011-12-14 22:51   
Can you reproduce this in single player?
(0002374)
Torr Samaho   
2012-01-14 16:44   
I doubt that this is caused by the SetActorProperty calls you posted. If they really have to do with this, something else has to destroy the actor before the SetActorProperty calls are made.

> It's random, happens seldom-- but only started happening today and not for the past 4+ months that the wad has been up.

So that means you didn't change anything in 4 months and the problem suddenly started?
(0002382)
Watermelon   
2012-01-14 19:05   
I've isolated it to not be the above, it happened to be something before it. I think it was calling on something that didn't exist, but it's now fixed. You can close this or disregard as it seemed to be a fault on my end rather than what I posted-- sorry for any time wasted here.
(0002387)
Torr Samaho   
2012-01-14 20:18   
Don't worry. Except for my post above, I didn't spend any time on this yet.