Batch of fixes for client

feature/pre-code-move
kaetemi 5 years ago committed by Jan Boon
parent 71e3ed5868
commit 0a1e8186b3

@ -88,7 +88,7 @@ namespace NLGUI
{ {
public: public:
ELuaError() { CLuaStackChecker::incrementExceptionContextCounter(); } ELuaError() { CLuaStackChecker::incrementExceptionContextCounter(); }
virtual ~ELuaError() throw() { CLuaStackChecker::decrementExceptionContextCounter(); } virtual ~ELuaError() NL_OVERRIDE { CLuaStackChecker::decrementExceptionContextCounter(); }
ELuaError(const std::string &reason) : Exception(reason) { CLuaStackChecker::incrementExceptionContextCounter(); } ELuaError(const std::string &reason) : Exception(reason) { CLuaStackChecker::incrementExceptionContextCounter(); }
// what(), plus append the Reason // what(), plus append the Reason
virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());} virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());}
@ -100,9 +100,9 @@ namespace NLGUI
public: public:
ELuaParseError() {} ELuaParseError() {}
ELuaParseError(const std::string &reason) : ELuaError(reason) {} ELuaParseError(const std::string &reason) : ELuaError(reason) {}
virtual ~ELuaParseError() throw() { } virtual ~ELuaParseError() NL_OVERRIDE { }
// what(), plus append the Reason // what(), plus append the Reason
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaParseError: %s", what());} virtual std::string luaWhat() const throw() NL_OVERRIDE {return NLMISC::toString("ELuaParseError: %s", what());}
}; };
/** Exception thrown when something went wrong inside a wrapped function called by lua /** Exception thrown when something went wrong inside a wrapped function called by lua
@ -113,8 +113,8 @@ namespace NLGUI
ELuaWrappedFunctionException(CLuaState *luaState); ELuaWrappedFunctionException(CLuaState *luaState);
ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason); ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason);
ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...); ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...);
virtual ~ELuaWrappedFunctionException() throw() { } virtual ~ELuaWrappedFunctionException() NL_OVERRIDE { }
virtual const char *what() const throw() {return _Reason.c_str();} virtual const char *what() const throw() NL_OVERRIDE {return _Reason.c_str();}
protected: protected:
void init(CLuaState *ls, const std::string &reason); void init(CLuaState *ls, const std::string &reason);
protected: protected:
@ -127,9 +127,9 @@ namespace NLGUI
public: public:
ELuaExecuteError() {} ELuaExecuteError() {}
ELuaExecuteError(const std::string &reason) : ELuaError(reason) {} ELuaExecuteError(const std::string &reason) : ELuaError(reason) {}
virtual ~ELuaExecuteError() throw() { } virtual ~ELuaExecuteError() NL_OVERRIDE { }
// what(), plus append the Reason // what(), plus append the Reason
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());} virtual std::string luaWhat() const throw() NL_OVERRIDE {return NLMISC::toString("ELuaExecuteError: %s", what());}
}; };
// A bad cast occurred when using lua_checkcast // A bad cast occurred when using lua_checkcast

@ -134,13 +134,13 @@ void CForm::write (xmlDocPtr doc, const std::string &filename)
} }
// Write elements // Write elements
Elements.write (node, this, NULL, true); Elements.write (node, this, std::string(), true);
// Write held elements // Write held elements
uint i; uint i;
for (i=0; i<HeldElementCount; i++) for (i=0; i<HeldElementCount; i++)
{ {
HeldElements[i]->write (node, this, NULL, true); HeldElements[i]->write (node, this, std::string(), true);
} }
// Header // Header
@ -273,7 +273,7 @@ void CForm::write (NLMISC::IStream &stream)
xmlStream.init (&stream); xmlStream.init (&stream);
// Write the file // Write the file
write (xmlStream.getDocument (), NULL); write (xmlStream.getDocument (), std::string());
} }
// *************************************************************************** // ***************************************************************************

@ -599,7 +599,7 @@ bool CType::getValue (string &result, const CForm *form, const CFormElmAtom *nod
else if (evaluate == UFormElm::Eval) else if (evaluate == UFormElm::Eval)
{ {
// Evaluate numerical expression // Evaluate numerical expression
if ((Type == Double) || (Type == SignedInt) || (Type == UnsignedInt) || (Type == UnsignedInt)) if ((Type == Double) || (Type == SignedInt) || (Type == UnsignedInt))
{ {
// Evaluate predefinition // Evaluate predefinition
uint i; uint i;

@ -1540,6 +1540,7 @@ namespace NLGUI
for (ite = _EltOrder.begin() ; ite != _EltOrder.end(); ite++) for (ite = _EltOrder.begin() ; ite != _EltOrder.end(); ite++)
{ {
CViewBase *pIE = *ite; CViewBase *pIE = *ite;
nlassert(pIE);
if (pIE->getActive()) if (pIE->getActive())
{ {
const CInterfaceElement *el = pIE->getParentPos() ? pIE->getParentPos() : pIE->getParent(); const CInterfaceElement *el = pIE->getParentPos() ? pIE->getParentPos() : pIE->getParent();

@ -667,6 +667,7 @@ namespace NLGUI
string elt = Target.substr(0,Target.rfind(':')); string elt = Target.substr(0,Target.rfind(':'));
CInterfaceElement *pIE = CWidgetManager::getInstance()->getElementFromId(elt); CInterfaceElement *pIE = CWidgetManager::getInstance()->getElementFromId(elt);
CInterfaceGroup *pIG = dynamic_cast<CInterfaceGroup*>(pIE); CInterfaceGroup *pIG = dynamic_cast<CInterfaceGroup*>(pIE);
nlassert(pIE);
if (pIG == NULL) if (pIG == NULL)
pIG = pIE->getParent(); pIG = pIE->getParent();

@ -741,7 +741,7 @@ namespace NLGUI
} }
// because this is a method, first parameter is the 'this' // because this is a method, first parameter is the 'this'
CReflectableRefPtrTarget *pRPT = getReflectableOnStack(*state, 1); CReflectableRefPtrTarget *pRPT = getReflectableOnStack(*state, 1);
if (pRPT == NULL) if (!pRPT)
{ {
state->push(NLMISC::toString("Error while calling lua method %s:%s : 'self' pointer is nil or of bad type, can't make the call.", state->push(NLMISC::toString("Error while calling lua method %s:%s : 'self' pointer is nil or of bad type, can't make the call.",
prop->ParentClass->ClassName.c_str(), prop->Name.c_str()) prop->ParentClass->ClassName.c_str(), prop->Name.c_str())
@ -752,19 +752,22 @@ namespace NLGUI
state->remove(1); // remove 'self' reference from parameters stack state->remove(1); // remove 'self' reference from parameters stack
// //
sint numResults = 0; sint numResults = 0;
sint initialStackSize = state->getTop(); if (pRPT)
try
{ {
// call the actual method sint initialStackSize = state->getTop();
numResults = (pRPT->*(prop->GetMethod.GetLuaMethod))(*state); try
} {
catch(const std::exception &e) // call the actual method
{ numResults = (pRPT->*(prop->GetMethod.GetLuaMethod))(*state);
// restore stack to its initial size }
state->setTop(initialStackSize); catch (const std::exception & e)
lua_pushstring(ls, e.what()); {
// TODO : see if this is safe to call lua error there" ... (it does a long jump) // restore stack to its initial size
lua_error(ls); state->setTop(initialStackSize);
lua_pushstring(ls, e.what());
// TODO : see if this is safe to call lua error there" ... (it does a long jump)
lua_error(ls);
}
} }
return numResults; return numResults;
} }
@ -787,6 +790,7 @@ namespace NLGUI
CInterfaceElement *pIE= CLuaIHM::getUIOnStack(ls, 1); CInterfaceElement *pIE= CLuaIHM::getUIOnStack(ls, 1);
std::string script; std::string script;
ls.toString(2, script); ls.toString(2, script);
nlassert(pIE);
// must be a group // must be a group
CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE); CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE);
@ -845,6 +849,7 @@ namespace NLGUI
std::string dbList, script; std::string dbList, script;
ls.toString(2, dbList); ls.toString(2, dbList);
ls.toString(3, script); ls.toString(3, script);
nlassert(pIE);
// must be a group // must be a group
CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE); CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE);
@ -873,6 +878,7 @@ namespace NLGUI
CInterfaceElement *pIE= CLuaIHM::getUIOnStack(ls, 1); CInterfaceElement *pIE= CLuaIHM::getUIOnStack(ls, 1);
std::string dbList; std::string dbList;
ls.toString(2, dbList); ls.toString(2, dbList);
nlassert(pIE);
// must be a group // must be a group
CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE); CInterfaceGroup *group= dynamic_cast<CInterfaceGroup*>(pIE);

@ -887,7 +887,7 @@ namespace NLGUI
while (!iFile.eof()) while (!iFile.eof())
{ {
iFile.getline (bufTmp, 256); iFile.getline (bufTmp, 256);
sscanf (bufTmp, "%s %f %f %f %f", tgaName, &uvMinU, &uvMinV, &uvMaxU, &uvMaxV); sscanf (bufTmp, "%s %f %f %f %f", tgaName, &uvMinU, &uvMinV, &uvMaxU, &uvMaxV); // FIXME: Return value ignored, tgaName may be uninitialized
SImage image; SImage image;
image.UVMin.U = uvMinU; image.UVMin.U = uvMinU;
image.UVMin.V = uvMinV; image.UVMin.V = uvMinV;

@ -2372,6 +2372,7 @@ namespace NLGUI
// make sure all parent windows are active // make sure all parent windows are active
CCtrlBase *cb = getCaptureKeyboard(); CCtrlBase *cb = getCaptureKeyboard();
CGroupContainer *lastContainer = NULL; CGroupContainer *lastContainer = NULL;
nlassert(cb);
for(;;) for(;;)
{ {
CGroupContainer *gc = dynamic_cast<CGroupContainer *>(cb); CGroupContainer *gc = dynamic_cast<CGroupContainer *>(cb);
@ -3226,6 +3227,7 @@ namespace NLGUI
for( j = 0; j < mg.Group->getNumGroup(); j++ ) for( j = 0; j < mg.Group->getNumGroup(); j++ )
{ {
CInterfaceGroup *g = mg.Group->getGroup( j ); CInterfaceGroup *g = mg.Group->getGroup( j );
nlassert(g);
if( dynamic_cast< CGroupModal* >( g ) != NULL ) if( dynamic_cast< CGroupModal* >( g ) != NULL )
continue; continue;

@ -2046,7 +2046,7 @@ void CBitmap::resamplePicture32 (const NLMISC::CRGBA *pSrc, NLMISC::CRGBA *pDest
sint32 nDestWidth, sint32 nDestHeight) sint32 nDestWidth, sint32 nDestHeight)
{ {
//logResample("RP32: 0 pSrc=%p pDest=%p, Src=%d x %d Dest=%d x %d", pSrc, pDest, nSrcWidth, nSrcHeight, nDestWidth, nDestHeight); //logResample("RP32: 0 pSrc=%p pDest=%p, Src=%d x %d Dest=%d x %d", pSrc, pDest, nSrcWidth, nSrcHeight, nDestWidth, nDestHeight);
if ((nSrcWidth<=0)||(nSrcHeight<=0)||(nDestHeight<=0)||(nDestHeight<=0)) if ((nSrcWidth<=0)||(nSrcHeight<=0)||(nDestWidth<=0)||(nDestHeight<=0))
return; return;
// If we're reducing it by 2, call the fast resample // If we're reducing it by 2, call the fast resample
@ -2268,7 +2268,7 @@ void CBitmap::resamplePicture8 (const uint8 *pSrc, uint8 *pDest,
sint32 nDestWidth, sint32 nDestHeight) sint32 nDestWidth, sint32 nDestHeight)
{ {
//logResample("RP8: 0 pSrc=%p pDest=%p, Src=%d x %d Dest=%d x %d", pSrc, pDest, nSrcWidth, nSrcHeight, nDestWidth, nDestHeight); //logResample("RP8: 0 pSrc=%p pDest=%p, Src=%d x %d Dest=%d x %d", pSrc, pDest, nSrcWidth, nSrcHeight, nDestWidth, nDestHeight);
if ((nSrcWidth<=0)||(nSrcHeight<=0)||(nDestHeight<=0)||(nDestHeight<=0)) if ((nSrcWidth<=0)||(nSrcHeight<=0)||(nDestWidth<=0)||(nDestHeight<=0))
return; return;
// If we're reducing it by 2, call the fast resample // If we're reducing it by 2, call the fast resample

@ -449,7 +449,7 @@ public:
EDebug() { _Reason = "Nothing about EDebug"; } EDebug() { _Reason = "Nothing about EDebug"; }
virtual ~EDebug() throw() {} virtual ~EDebug() NL_OVERRIDE {}
EDebug(EXCEPTION_POINTERS * pexp) : m_pexp(pexp) { nlassert(pexp != 0); createWhat(); } EDebug(EXCEPTION_POINTERS * pexp) : m_pexp(pexp) { nlassert(pexp != 0); createWhat(); }
EDebug(const EDebug& se) : m_pexp(se.m_pexp) { createWhat(); } EDebug(const EDebug& se) : m_pexp(se.m_pexp) { createWhat(); }
@ -863,9 +863,10 @@ public:
cleanType (type, displayType); cleanType (type, displayType);
char tmp[1024]; char tmp[1024];
tmp[0]='\0';
if(type == "void") if(type == "void")
{ {
tmp[0]='\0'; // tmp[0]='\0';
} }
else if(type == "int") else if(type == "int")
{ {
@ -1716,6 +1717,7 @@ NLMISC_CATEGORISED_COMMAND(nel, writeaccess, "write a uint8 value in an invalid
#endif #endif
} }
if(args.size() >= 2) NLMISC::fromString(args[1], val); if(args.size() >= 2) NLMISC::fromString(args[1], val);
nlassume(adr);
*adr = val; *adr = val;
return true; return true;
} }
@ -1736,6 +1738,7 @@ NLMISC_CATEGORISED_COMMAND(nel, readaccess, "read a uint8 value in an invalid ad
adr = (uint8*)addr32; adr = (uint8*)addr32;
#endif #endif
} }
nlassume(adr);
val = *adr; val = *adr;
log.displayNL("value is %hu", (uint16)val); log.displayNL("value is %hu", (uint16)val);
return true; return true;

@ -570,7 +570,7 @@ string CEntityIdTranslator::getUserName (uint32 uid)
return entity.UserName; return entity.UserName;
} }
} }
return 0; return string();
} }
void CEntityIdTranslator::getEntityIdInfo (const CEntityId &eid, ucstring &entityName, sint8 &entitySlot, uint32 &uid, string &userName, bool &online, std::string* additional) void CEntityIdTranslator::getEntityIdInfo (const CEntityId &eid, ucstring &entityName, sint8 &entitySlot, uint32 &uid, string &userName, bool &online, std::string* additional)

@ -171,8 +171,7 @@ bool CIXml::init (IStream &stream)
// Try binary mode // Try binary mode
if (_TryBinaryMode) if (_TryBinaryMode)
{ {
string header; char header[4];
header.resize(4);
header[0] = buffer[0]; header[0] = buffer[0];
header[1] = buffer[1]; header[1] = buffer[1];
header[2] = buffer[2]; header[2] = buffer[2];
@ -180,7 +179,7 @@ bool CIXml::init (IStream &stream)
toLower(header); toLower(header);
// Does it a xml stream ? // Does it a xml stream ?
if (header != "<?xm") if (!strcmp(header, "<?xm"))
{ {
// NO ! Go in binary mode // NO ! Go in binary mode
_BinaryStream = &stream; _BinaryStream = &stream;

@ -1421,6 +1421,7 @@ bool CSystemInfo::hasHyperThreading()
// get vendor string from cpuid // get vendor string from cpuid
char vendor_id[32]; char vendor_id[32];
vendor_id[31] = '\0';
memset(vendor_id, 0, sizeof(vendor_id)); memset(vendor_id, 0, sizeof(vendor_id));
nlcpuid(CPUInfo, 0); nlcpuid(CPUInfo, 0);
memcpy(vendor_id, &CPUInfo[1], sizeof(sint32)); memcpy(vendor_id, &CPUInfo[1], sizeof(sint32));

@ -168,12 +168,12 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ {
str += *pos2; str += *pos2;
} }
*pos2++; pos2++;
} }
// eat the \n // eat the \n
if (*pos2 == '\n') if (*pos2 == '\n')
*pos2++; pos2++;
if (!str.empty()) if (!str.empty())
{ {

@ -212,6 +212,7 @@ void followBorder(CInteriorSurface &surface, uint first, uint edge, uint sens, v
else else
{ {
// if the next element is inside the surface, then go to the next element // if the next element is inside the surface, then go to the next element
nlassert(next);
nlassert(next->InternalSurface == currentSurfId); nlassert(next->InternalSurface == currentSurfId);
for (oedge=0; oedge<3 && next->Edge[oedge]!=currentFace; ++oedge) for (oedge=0; oedge<3 && next->Edge[oedge]!=currentFace; ++oedge)

@ -533,7 +533,7 @@ std::string rz_crypt(register const char *key, register const char *setting, cha
keyblock.b[i] = t; keyblock.b[i] = t;
} }
if (rz_des_setkey((char *)keyblock.b)) /* also initializes "a64toi" */ if (rz_des_setkey((char *)keyblock.b)) /* also initializes "a64toi" */
return (NULL); return std::string();
encp = &cryptresult[0]; encp = &cryptresult[0];
switch (*setting) { switch (*setting) {
@ -544,14 +544,14 @@ std::string rz_crypt(register const char *key, register const char *setting, cha
while (*key) { while (*key) {
if (rz_des_cipher((char *)&keyblock, if (rz_des_cipher((char *)&keyblock,
(char *)&keyblock, 0L, 1)) (char *)&keyblock, 0L, 1))
return (NULL); return std::string();
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
if ((t = 2*(unsigned char)(*key)) != 0) if ((t = 2*(unsigned char)(*key)) != 0)
key++; key++;
keyblock.b[i] ^= t; keyblock.b[i] ^= t;
} }
if (rz_des_setkey((char *)keyblock.b)) if (rz_des_setkey((char *)keyblock.b))
return (NULL); return std::string();
} }
*encp++ = *setting++; *encp++ = *setting++;
@ -583,7 +583,7 @@ std::string rz_crypt(register const char *key, register const char *setting, cha
encp += salt_size; encp += salt_size;
if (rz_des_cipher((char *)&constdatablock, (char *)&rsltblock, if (rz_des_cipher((char *)&constdatablock, (char *)&rsltblock,
salt, num_iter)) salt, num_iter))
return ""; return std::string();
/* /*
* Encode the 64 cipher bits as 11 ascii characters. * Encode the 64 cipher bits as 11 ascii characters.

@ -1763,6 +1763,7 @@ void CMirroredDataSet::getValueToString( const TDataSetRow& entityIndex, TPro
} }
default: default:
result = toString( "<Invalid type> (%s/E%d/P%hd)", name().c_str(), entityIndex.getIndex(), propIndex ); result = toString( "<Invalid type> (%s/E%d/P%hd)", name().c_str(), entityIndex.getIndex(), propIndex );
return;
} }
result = string(tmpStr); result = string(tmpStr);
} }

@ -1480,7 +1480,7 @@ bool CObjectTable::canTake(sint32 position) const
{ {
CObject* parent = getParent(); CObject* parent = getParent();
if (parent) //try to take the root of a tree if (!parent) //try to take the root of a tree
{ {
return true; return true;
} }

@ -667,11 +667,12 @@ void CAttributeToProperty::setAiStateName(const std::string& prefix)
std::string name; std::string name;
CObject* tmp=_Object->getAttr("Id"); CObject* tmp=_Object->getAttr("Id");
if( !(tmp&&tmp->isString())&&((name = tmp->toString()).length()!=0)) if (!tmp || !tmp->isString())
{ {
nlwarning("R2Ani: invalide rtData"); nlwarning("R2Ani: invalide rtData");
return; return;
} }
name = tmp->toString();
_Primitive->addPropertyByName("name", new CPropertyString(prefix + name)); _Primitive->addPropertyByName("name", new CPropertyString(prefix + name));

@ -122,8 +122,8 @@ inline ucstring capitalize(const ucstring & s)
#define GIVEUP_IF(condition,msg,action) if (!(condition));else GIVEUP(msg,action) #define GIVEUP_IF(condition,msg,action) if (!(condition));else GIVEUP(msg,action)
#define WARN_IF(condition,msg) if (!(condition));else WARN(msg) #define WARN_IF(condition,msg) if (!(condition));else WARN(msg)
#define DROP_IF(condition,msg,action) if (!(condition));else DROP(msg,action) #define DROP_IF(condition,msg,action) if (!(condition));else DROP(msg,action)
#define BOMB_IF(condition,msg,action) if (!(condition));else BOMB(msg,action) #define BOMB_IF(condition,msg,action) if (!(condition));else BOMB(msg,action); do { nlassume(condition); } while (0)
#define STOP_IF(condition,msg) if (!(condition));else STOP(msg) #define STOP_IF(condition,msg) if (!(condition));else STOP(msg); do { nlassume(condition); } while (0)
// testing for variable value changes // testing for variable value changes
#define ON_CHANGE(type,var,code)\ #define ON_CHANGE(type,var,code)\

Loading…
Cancel
Save