diff --git a/engine/server/application/ConnectionServer/src/shared/ConnectionServer.cpp b/engine/server/application/ConnectionServer/src/shared/ConnectionServer.cpp index 70ef1768..62de66e1 100644 --- a/engine/server/application/ConnectionServer/src/shared/ConnectionServer.cpp +++ b/engine/server/application/ConnectionServer/src/shared/ConnectionServer.cpp @@ -1554,7 +1554,7 @@ SessionApiClient* ConnectionServer::getSessionApiClient() // ---------------------------------------------------------------------- -void ConnectionServer::setDone(char const *reasonfmt, ...) +void ConnectionServer::setDone(char const reasonfmt, ...) { if (!done) { @@ -1579,6 +1579,7 @@ void ConnectionServer::setDone(char const *reasonfmt, ...) reason)); done = true; + va_end(ap); } } diff --git a/engine/server/application/ConnectionServer/src/shared/ConnectionServer.h b/engine/server/application/ConnectionServer/src/shared/ConnectionServer.h index 36abc449..d6d07a73 100644 --- a/engine/server/application/ConnectionServer/src/shared/ConnectionServer.h +++ b/engine/server/application/ConnectionServer/src/shared/ConnectionServer.h @@ -36,7 +36,7 @@ class ConnectionServer : public MessageDispatch::Receiver public: static void install(); static void remove(); - void setDone(char const *reasonfmt, ...); + void setDone(char const reasonfmt, ...); ~ConnectionServer (); diff --git a/engine/server/application/LogServer/src/shared/LogServer.cpp b/engine/server/application/LogServer/src/shared/LogServer.cpp index f5658a39..3b978e44 100644 --- a/engine/server/application/LogServer/src/shared/LogServer.cpp +++ b/engine/server/application/LogServer/src/shared/LogServer.cpp @@ -127,7 +127,7 @@ void LogServer::receiveMessage(MessageDispatch::Emitter const &source, MessageDi // ---------------------------------------------------------------------- -void LogServer::setDone(char const *reasonfmt, ...) +void LogServer::setDone(char const reasonfmt, ...) { if (!m_done) { @@ -151,6 +151,7 @@ void LogServer::setDone(char const *reasonfmt, ...) static_cast(Os::getProcessId()), reason)); + va_end(ap); m_done = true; } } diff --git a/engine/server/application/LogServer/src/shared/LogServer.h b/engine/server/application/LogServer/src/shared/LogServer.h index d7d8b45d..03e1dce9 100644 --- a/engine/server/application/LogServer/src/shared/LogServer.h +++ b/engine/server/application/LogServer/src/shared/LogServer.h @@ -30,7 +30,7 @@ public: static void remove(); static void run(); void mainLoop(); - void setDone(char const *reason, ...); + void setDone(char const reason, ...); virtual void receiveMessage(MessageDispatch::Emitter const &source, MessageDispatch::MessageBase const &message); diff --git a/engine/server/application/PlanetServer/src/shared/PlanetServer.cpp b/engine/server/application/PlanetServer/src/shared/PlanetServer.cpp index a1714f6f..fd973f07 100644 --- a/engine/server/application/PlanetServer/src/shared/PlanetServer.cpp +++ b/engine/server/application/PlanetServer/src/shared/PlanetServer.cpp @@ -1449,7 +1449,7 @@ void PlanetServer::sendQueuedMessagesForObject(const PlanetProxyObject &theObjec // ---------------------------------------------------------------------- -void PlanetServer::setDone(char const *reasonfmt, ...) +void PlanetServer::setDone(char const reasonfmt, ...) { if (!m_done) { @@ -1472,7 +1472,8 @@ void PlanetServer::setDone(char const *reasonfmt, ...) "PlanetServer (pid %d) shutdown, reason: %s\n", static_cast(Os::getProcessId()), reason)); - + + va_end(ap); m_done = true; } } diff --git a/engine/server/application/PlanetServer/src/shared/PlanetServer.h b/engine/server/application/PlanetServer/src/shared/PlanetServer.h index cf457544..c013b932 100644 --- a/engine/server/application/PlanetServer/src/shared/PlanetServer.h +++ b/engine/server/application/PlanetServer/src/shared/PlanetServer.h @@ -49,7 +49,7 @@ public: static void run(void); void mainLoop(void); - void setDone(char const *reasonfmt, ...); + void setDone(char const reasonfmt, ...); const unsigned short getGameServicePort() const; const Service * getGameService() const; diff --git a/engine/server/library/serverDatabase/src/shared/DatabaseProcess.cpp b/engine/server/library/serverDatabase/src/shared/DatabaseProcess.cpp index 9353e2d9..9e1f5886 100644 --- a/engine/server/library/serverDatabase/src/shared/DatabaseProcess.cpp +++ b/engine/server/library/serverDatabase/src/shared/DatabaseProcess.cpp @@ -311,7 +311,7 @@ void DatabaseProcess::run(void) // ---------------------------------------------------------------------- -void DatabaseProcess::setDone(char const *reasonfmt, ...) +void DatabaseProcess::setDone(char const reasonfmt, ...) { if (!done) { @@ -336,7 +336,8 @@ void DatabaseProcess::setDone(char const *reasonfmt, ...) static_cast(getProcessId()), static_cast(Os::getProcessId()), reason)); - + + va_end(ap); done = true; } } diff --git a/engine/server/library/serverDatabase/src/shared/DatabaseProcess.h b/engine/server/library/serverDatabase/src/shared/DatabaseProcess.h index 5cc5f2e7..90bb2088 100644 --- a/engine/server/library/serverDatabase/src/shared/DatabaseProcess.h +++ b/engine/server/library/serverDatabase/src/shared/DatabaseProcess.h @@ -40,7 +40,7 @@ class DatabaseProcess : public MessageDispatch::Receiver // running: virtual void run (void) = 0; - void setDone(char const *reasonfmt, ...); + void setDone(char const reasonfmt, ...); virtual void frameTick(void) {} diff --git a/engine/server/library/serverGame/src/shared/controller/PlayerShipController.cpp b/engine/server/library/serverGame/src/shared/controller/PlayerShipController.cpp index 9b0cec0e..15d35ef5 100644 --- a/engine/server/library/serverGame/src/shared/controller/PlayerShipController.cpp +++ b/engine/server/library/serverGame/src/shared/controller/PlayerShipController.cpp @@ -535,7 +535,7 @@ uint32 PlayerShipController::getCurSyncStamp() const // ---------------------------------------------------------------------- -void PlayerShipController::logMoveFail(char const *reasonFmt, ...) const +void PlayerShipController::logMoveFail(char const reasonFmt, ...) const { ShipObject const * const ship = NON_NULL(getShipOwner()); Client const * const client = NON_NULL(ship->getClient()); @@ -554,6 +554,7 @@ void PlayerShipController::logMoveFail(char const *reasonFmt, ...) const client->getCharacterObjectId().getValueString().c_str(), client->getStationId(), reason)); + va_end(ap); } // ---------------------------------------------------------------------- diff --git a/engine/server/library/serverGame/src/shared/controller/PlayerShipController.h b/engine/server/library/serverGame/src/shared/controller/PlayerShipController.h index fdf02467..e535da9f 100644 --- a/engine/server/library/serverGame/src/shared/controller/PlayerShipController.h +++ b/engine/server/library/serverGame/src/shared/controller/PlayerShipController.h @@ -76,7 +76,7 @@ private: uint32 getCurSyncStamp() const; bool checkValidMove(Transform const &transform, Vector const &velocity, float speed, uint32 syncStamp); - void logMoveFail(char const *reasonFmt, ...) const; + void logMoveFail(char const reasonFmt, ...) const; private: diff --git a/engine/server/library/serverGame/src/shared/core/GameServer.cpp b/engine/server/library/serverGame/src/shared/core/GameServer.cpp index cf3cb708..8026de12 100644 --- a/engine/server/library/serverGame/src/shared/core/GameServer.cpp +++ b/engine/server/library/serverGame/src/shared/core/GameServer.cpp @@ -4864,7 +4864,7 @@ void GameServer::getObjectsWithClients(std::vector &objects) con // ---------------------------------------------------------------------- -void GameServer::setDone(char const *reasonfmt, ...) +void GameServer::setDone(char const reasonfmt, ...) { if (!m_done) { @@ -4890,6 +4890,7 @@ void GameServer::setDone(char const *reasonfmt, ...) static_cast(Os::getProcessId()), reason)); + va_end(ap); m_done = true; } } diff --git a/engine/server/library/serverGame/src/shared/core/GameServer.h b/engine/server/library/serverGame/src/shared/core/GameServer.h index 59743b7c..f30e4b38 100644 --- a/engine/server/library/serverGame/src/shared/core/GameServer.h +++ b/engine/server/library/serverGame/src/shared/core/GameServer.h @@ -106,7 +106,7 @@ public: void clearCustomerServiceServerConnection(); void setCentralServerConnection (CentralServerConnection *newCentralServerConnection); void setDatabaseProcessConnection (DatabaseProcessConnection *newDatabaseProcessConnection); - void setDone (char const *reason, ...); + void setDone (char const reasonfmt, ...); void setProcessId (uint32 newProcessId); void onDatabaseProcessConnectionEstablished(); void onPlanetServerConnectionEstablished (); diff --git a/engine/server/library/serverScript/src/shared/JNIWrappers.cpp b/engine/server/library/serverScript/src/shared/JNIWrappers.cpp index a6b55772..82748173 100644 --- a/engine/server/library/serverScript/src/shared/JNIWrappers.cpp +++ b/engine/server/library/serverScript/src/shared/JNIWrappers.cpp @@ -78,6 +78,9 @@ LocalRefPtr createNewObject(jclass clazz, jmethodID constructorID, ...) va_start(marker, constructorID); LocalRefPtr result(new LocalRef(JavaLibrary::getEnv()->NewObjectV(clazz, constructorID, marker))); + + va_end(marker); + if (result->getValue() == 0) return LocalRef::cms_nullPtr; return result; @@ -187,8 +190,11 @@ LocalRefPtr callObjectMethod(const LocalRefParam & object, jmethodID methodID, . { va_list marker; va_start(marker, methodID); - + LocalRefPtr result(new LocalRef(JavaLibrary::getEnv()->CallObjectMethodV(object.getValue(), methodID, marker))); + + va_end(marker); + if (result->getValue() != 0) return result; } @@ -205,6 +211,9 @@ LocalObjectArrayRefPtr callObjectArrayMethod(const LocalRefParam & object, jmeth va_start(marker, methodID); LocalObjectArrayRefPtr result(new LocalObjectArrayRef(static_cast(JavaLibrary::getEnv()->CallObjectMethodV(object.getValue(), methodID, marker)))); + + va_end(marker); + if (result->getValue() != 0) return result; } @@ -221,6 +230,9 @@ LocalByteArrayRefPtr callByteArrayMethod(const LocalRefParam & object, jmethodID va_start(marker, methodID); LocalByteArrayRefPtr result(new LocalByteArrayRef(static_cast(JavaLibrary::getEnv()->CallObjectMethodV(object.getValue(), methodID, marker)))); + + va_end(marker); + if (result->getValue() != 0) return result; } @@ -236,7 +248,11 @@ jint callIntMethod(const LocalRefParam & object, jmethodID methodID, ...) va_list marker; va_start(marker, methodID); - return JavaLibrary::getEnv()->CallIntMethodV(object.getValue(), methodID, marker); + jint result = JavaLibrary::getEnv()->CallIntMethodV(object.getValue(), methodID, marker); + + va_end(marker); + + return result; } return 0; } @@ -250,7 +266,11 @@ jlong callLongMethod(const LocalRefParam & object, jmethodID methodID, ...) va_list marker; va_start(marker, methodID); - return JavaLibrary::getEnv()->CallLongMethodV(object.getValue(), methodID, marker); + jlong result = JavaLibrary::getEnv()->CallLongMethodV(object.getValue(), methodID, marker); + + va_end(marker); + + return result; } return 0; } @@ -264,7 +284,11 @@ jfloat callFloatMethod(const LocalRefParam & object, jmethodID methodID, ...) va_list marker; va_start(marker, methodID); - return JavaLibrary::getEnv()->CallFloatMethodV(object.getValue(), methodID, marker); + jfloat result = JavaLibrary::getEnv()->CallFloatMethodV(object.getValue(), methodID, marker); + + va_end(marker); + + return result; } return 0; } @@ -278,7 +302,11 @@ jboolean callBooleanMethod(const LocalRefParam & object, jmethodID methodID, ... va_list marker; va_start(marker, methodID); - return JavaLibrary::getEnv()->CallBooleanMethodV(object.getValue(), methodID, marker); + jboolean result = JavaLibrary::getEnv()->CallBooleanMethodV(object.getValue(), methodID, marker); + + va_end(marker); + + return result; } return JNI_FALSE; } @@ -293,6 +321,8 @@ void callVoidMethod(const LocalRefParam & object, jmethodID methodID, ...) va_start(marker, methodID); JavaLibrary::getEnv()->CallVoidMethodV(object.getValue(), methodID, marker); + + va_end(marker); } } @@ -305,7 +335,11 @@ jboolean callNonvirtualBooleanMethod(const LocalRefParam & object, jclass clazz, va_list marker; va_start(marker, methodID); - return JavaLibrary::getEnv()->CallNonvirtualBooleanMethodV(object.getValue(), clazz, methodID, marker); + jboolean result = JavaLibrary::getEnv()->CallNonvirtualBooleanMethodV(object.getValue(), clazz, methodID, marker); + + va_end(marker); + + return result; } return JNI_FALSE; } @@ -318,6 +352,8 @@ void callStaticVoidMethod(jclass clazz, jmethodID methodID, ...) va_start(marker, methodID); JavaLibrary::getEnv()->CallStaticVoidMethodV(clazz, methodID, marker); + + va_end(marker); } //----------------------------------------------------------------------- @@ -328,6 +364,9 @@ LocalRefPtr callStaticObjectMethod(jclass clazz, jmethodID methodID, ...) va_start(marker, methodID); LocalRefPtr result(new LocalRef(JavaLibrary::getEnv()->CallStaticObjectMethodV(clazz, methodID, marker))); + + va_end(marker); + if (result->getValue() == 0) return LocalRef::cms_nullPtr; return result; @@ -341,6 +380,9 @@ LocalObjectArrayRefPtr callStaticObjectArrayMethod(jclass clazz, jmethodID metho va_start(marker, methodID); LocalObjectArrayRefPtr result(new LocalObjectArrayRef(static_cast(JavaLibrary::getEnv()->CallStaticObjectMethodV(clazz, methodID, marker)))); + + va_end(marker); + if (result->getValue() == 0) return LocalObjectArrayRef::cms_nullPtr; return result; @@ -354,6 +396,9 @@ LocalByteArrayRefPtr callStaticByteArrayMethod(jclass clazz, jmethodID methodID, va_start(marker, methodID); LocalByteArrayRefPtr result(new LocalByteArrayRef(static_cast(JavaLibrary::getEnv()->CallStaticObjectMethodV(clazz, methodID, marker)))); + + va_end(marker); + if (result->getValue() == 0) return LocalByteArrayRef::cms_nullPtr; return result; @@ -407,6 +452,9 @@ JavaStringPtr callStringMethod(const LocalRefParam & object, jmethodID methodID, va_start(marker, methodID); jobject result = JavaLibrary::getEnv()->CallObjectMethodV(object.getValue(), methodID, marker); + + va_end(marker); + if (result != 0) { #ifdef _DEBUG @@ -432,6 +480,9 @@ JavaStringPtr callStaticStringMethod(jclass clazz, jmethodID methodID, ...) JavaStringPtr result(new JavaString(static_cast(JavaLibrary::getEnv()->CallStaticObjectMethodV(clazz, methodID, marker)))); + + va_end(marker); + if (result->getValue() != 0) return result; return JavaString::cms_nullPtr; diff --git a/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.cpp b/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.cpp index a74f665b..6306ae8a 100644 --- a/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.cpp +++ b/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.cpp @@ -177,7 +177,7 @@ int File::readLine(char *buffer, int bufferSize) /** * fprintf functionality. */ -int File::print(const char *format, ...) +int File::print(const char format, ...) { NOT_NULL(m_fp); @@ -185,4 +185,6 @@ int File::print(const char *format, ...) va_start(argptr, format); return vfprintf(m_fp, format, argptr); + + va_end(argptr); } // File::print diff --git a/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.h b/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.h index b8f655e6..50c531bf 100644 --- a/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.h +++ b/engine/shared/library/sharedTemplateDefinition/src/shared/core/File.h @@ -33,7 +33,7 @@ public: int readLine(char *buffer, int bufferSize); int puts(const char *string); - int print(const char *format, ...); + int print(const char format, ...); void printWarning(const char *buffer) const; void printError(const char *buffer) const;