Hint at problematic code when logging deprecated calls
authorsfan5 <sfan5@live.de>
Thu, 23 Nov 2017 22:35:52 +0000 (23:35 +0100)
committerparamat <mat.gregory@virginmedia.com>
Mon, 27 Nov 2017 01:28:39 +0000 (01:28 +0000)
src/script/common/c_internal.cpp

index 0b388e3831d20f7cfcb5f08cff9e9fce6ade39d4..3d766a95557c52b347de62c26dd577941ed10e0f 100644 (file)
@@ -150,9 +150,15 @@ void log_deprecated(lua_State *L, const std::string &message)
        }
 
        if (do_log) {
-               warningstream << message << std::endl;
-               // L can be NULL if we get called by log_deprecated(const std::string &msg)
-               // from scripting_game.cpp.
+               warningstream << message;
+               if (L) { // L can be NULL if we get called from scripting_game.cpp
+                       lua_Debug ar;
+                       FATAL_ERROR_IF(!lua_getstack(L, 2, &ar), "lua_getstack() failed");
+                       FATAL_ERROR_IF(!lua_getinfo(L, "Sl", &ar), "lua_getinfo() failed");
+                       warningstream << " (at " << ar.short_src << ":" << ar.currentline << ")";
+               }
+               warningstream << std::endl;
+
                if (L) {
                        if (do_error)
                                script_error(L, LUA_ERRRUN, NULL, NULL);