PREfix simulation path begins

                     

 

439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465

 
 

 


 

 

 
 

 


 

 







 

    MASSERT(lua_gettop(l) > 1); // gotta at least have the table and the index
    int type = lua_type(l, -1);

    if (LUA_TNUMBER != type) // we only support numeric implicit indexes
        return 0;

    double did = lua_tonumber(l, -1);
    ObjectID id = (ObjectID) did;
    MASSERT(did == (double) id);

    CAICoreImp * paicore = _GetAICore(l);
    CAICombat * paicom = reinterpret_cast<CAICombat *>(paicore->PopObject(true, -2)); 

    if(paicom==NULL)    // We dont want to crash if the monster doesnt exist.
        return 0;

    CCombat * pcom = paicom->GetCombat();

    switch (id)
    {
        case LuaID::Health:
            lua_pushnumber(l, pcom->GetHealth());
            break;

        case LuaID::Target:
        {

            CAICombat * paicomTarget = CAICombat::FromCCombat(pcom->GetTarget());

 

Value comes from return value of 'CAICombat::FromCCombat(class ServerSim::CCombat *)' on line '465'.

 

 

466

 

            paicomTarget->Push();

 

ai.cpp, line 466 : warning (11): dereferencing NULL pointer 'paicomTarget'
    problem occurs in function 'LIndexCombat(struct lua_State *)'
    used as parameter 0 (this) of call to 'CAIObject::Push()'
    value comes from return value of 'CAICombat::FromCCombat(class ServerSim::CCombat *)' on line '465'
    Problem occurs when the following conditions are true:
        when 'lua_gettop(l) > 1' on line 439
        when 'type == 2' on line 442
        when 'did == (double)id' on line 447
        when 'paicom != 0' on line 452
        when 'paicom-> ... != 0' during call to 'CAICombat::GetCombat()' on line 455
        when 'id == 96' on line 457
        when 'pcom->GetTarget() == 0' during call to 'CAICombat::FromCCombat(class ServerSim::CCombat *)' on line 465
    Comment: Valid
    Path includes 26 statements on the following lines:
    439 439 439 439 439 439 439 440 442 445 446 447 447 447 447 447 447 447 
    449 450 452 455 457 463 465 466 

 

 

 

420
421
422
423
424
425
426
427
428


 

 


 

 

    LARGE_INTEGER freq;
    QueryPerformanceFrequency (&freq);
    s_NanoFrequency = (unsigned long) (freq.QuadPart / STAT_TIME_FREQUENCY);
    MASSERT ((freq.QuadPart / STAT_TIME_FREQUENCY) <= 0xffffffff);
    }

    delete[] m_SampleBuffer;
    m_SampleBufferSize = FrameCount;

    m_SampleBuffer = m_SampleBufferSize ? new CStatSample [m_SampleBufferSize] : NULL;

 

Value assigned from use of '0' on line '428'.

 

 

429
430

 
 

    Reset();

    EnterArea (STATAREA_OUTSIDE);

 

stats.cpp, line 430 : warning (11): dereferencing NULL pointer 'this->m_SampleBuffer'
    problem occurs in function 'NRenderStats::CStats::Initialize(int)'
    used as parameter 0 (this) of call to 'NRenderStats::CStats::EnterArea(enum NRenderStats::StatArea,bool)'
    value assigned from use of '0' on line '428'
    Problem occurs when the following conditions are true:
        when 'freq.QuadPart/STAT_TIME_FREQUENCY <= 4294967295' on line 423
        when 'm_SampleBufferSize == 0' on line 428
    Comment: Valid
    Path includes 15 statements on the following lines:
    420 421 422 423 423 423 423 423 423 423 426 427 428 429 430 

 

begins

                     

 

1109
1110
1111
1112
1113
1114
1115
1116

 
 

 
 


    unsigned int tc = (int)t[0],
                 tr = (int)t[1];

    unsigned int gc = (int)g[0];
    unsigned int gr = (int)g[1];

    int px[3] = {0,1,0}, py[3] = {0,0,1};

    float h[4];

 

Stack variable declared on line '1116'.

 

 

1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149

 
 


 





 







 







 





    float tdx = t[0] - tc;
    float tdy = t[1] - tr;

    int type;
    CBinTree::FindLeafTriangle(t, &type);

    // Define the reference points, corner(0), delta x(1) and delta y(2)
    int i;

    // Reverse X
    if (type &1)
    {
        px[0] = 1;
        px[1] = 0;
        px[2] = 1;
        tdx = 1.0f - tdx;
    }
    // Reverse Y
    if (type &2)
    {
        py[0] = 1;
        py[1] = 1;
        py[2] = 0;
        tdy = 1.0f - tdy;
    }

    if (m_rContinent)
    {
        for (i=0; i <3; i++)
            h[i] = m_rContinent->GetHeightData(gc+px[i],gr+py[i]);
    }

    h[3] = h[0] + (h[1]-h[0])*tdx + (h[2]-h[0])*tdy;

 

terrain.cpp, line 1149 : warning (1): using uninitialized memory 'h[0]'
    problem occurs in function 'NRender::CHierarchicalTerrain::_GetHeight(class NMath::CPoint2,class NMath::CPoint2,class NMath::CPoint3 *)'
    stack variable declared on line '1116'
    Problem occurs when the following conditions are true:
        when '(type) & 0x1 == 1' on line 1127
        when '((type) >> 1) & 0x1 == 1' on line 1135
        when '&m_rContinent->CContinent *() == 0' on line 1143
    Comment: Valid
    Path includes 24 statements on the following lines:
    1109 1110 1112 1113 1115 1115 1116 1117 1118 1120 1121 1124 1127 1129 
    1130 1131 1132 1135 1137 1138 1139 1140 1143 1149