X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4a6b0a991a67e6f2f67c03fed43529e078da7115..df078bae24388cc0dd63b2bbafe05897a0dd45f8:/src/bindings/lua/lua_debug.cpp diff --git a/src/bindings/lua/lua_debug.cpp b/src/bindings/lua/lua_debug.cpp index ef795da9f3..854e1adb4a 100644 --- a/src/bindings/lua/lua_debug.cpp +++ b/src/bindings/lua/lua_debug.cpp @@ -1,24 +1,21 @@ -/* Copyright (c) 2010-2016. The SimGrid Team. - * All rights reserved. +/* Copyright (c) 2010-2018. The SimGrid Team. + * All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ - /* * This file contains functions that aid users to debug their lua scripts; for instance, * tables can be easily output and values are represented in a human-readable way. (For instance, - * a NULL value becomes the string "nil"). + * a nullptr value becomes the string "nil"). * */ /* SimGrid Lua debug functions */ -extern "C" { #include -} -#include "lua_utils.h" +#include "lua_utils.hpp" #include "xbt.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua_debug, bindings, "Lua helper functions"); +XBT_LOG_NEW_DEFAULT_CATEGORY(lua_debug, "Lua bindings (helper functions)"); /** * @brief Returns a string representation of a value in the Lua stack. @@ -37,15 +34,15 @@ const char* sglua_tostring(lua_State* L, int index) { switch (lua_type(L, index)) { case LUA_TNIL: - sprintf(buff, "nil"); + snprintf(buff, 4, "nil"); break; - case LUA_TNUMBER: - sprintf(buff, "%.3f", lua_tonumber(L, index)); + case LUA_TNUMBER: + snprintf(buff, 64, "%.3f", lua_tonumber(L, index)); break; case LUA_TBOOLEAN: - sprintf(buff, "%s", lua_toboolean(L, index) ? "true" : "false"); + snprintf(buff, 64, "%s", lua_toboolean(L, index) ? "true" : "false"); break; case LUA_TSTRING: @@ -54,24 +51,24 @@ const char* sglua_tostring(lua_State* L, int index) { case LUA_TFUNCTION: if (lua_iscfunction(L, index)) { - sprintf(buff, "C-function"); + snprintf(buff, 11, "C-function"); } else { - sprintf(buff, "function"); + snprintf(buff, 9, "function"); } break; case LUA_TTABLE: - sprintf(buff, "table(%p)", lua_topointer(L, index)); + snprintf(buff, 64, "table(%p)", lua_topointer(L, index)); break; case LUA_TLIGHTUSERDATA: case LUA_TUSERDATA: - sprintf(buff, "userdata(%p)", lua_touserdata(L, index)); + snprintf(buff, 64, "userdata(%p)", lua_touserdata(L, index)); break; case LUA_TTHREAD: - sprintf(buff, "thread"); + snprintf(buff, 7, "thread"); break; } return buff; @@ -84,7 +81,7 @@ static int sglua_dump_table(lua_State* L) { if (lua_istable(L, i)) { lua_pushnil(L); /* table nil */ - //lua_next pops the topmost element from the stack and + //lua_next pops the topmost element from the stack and //gets the next pair from the table while (lua_next(L, -1)) { /* table key val */ // we need to copy here, as a cast from "Number" to "String" @@ -164,7 +161,7 @@ void sglua_stack_dump(lua_State* L, const char* msg) p[0] = '\0'; for (int i = 1; i <= top; i++) { /* repeat for each level */ - p += sprintf(p, "%s ", sglua_tostring(L, i)); + p += snprintf(p, 2048-(p-buff), "%s ", sglua_tostring(L, i)); } XBT_DEBUG("%s%s", msg, buff); @@ -172,13 +169,13 @@ void sglua_stack_dump(lua_State* L, const char* msg) } /** - * \brief Like luaL_checkudata, with additional debug logs. + * @brief Like luaL_checkudata, with additional debug logs. * * This function is for debugging purposes only. * - * \param L a lua state - * \param ud index of the userdata to check in the stack - * \param tname key of the metatable of this userdata in the registry + * @param L a lua state + * @param ud index of the userdata to check in the stack + * @param tname key of the metatable of this userdata in the registry */ void* sglua_checkudata_debug(lua_State* L, int ud, const char* tname) { @@ -190,7 +187,7 @@ void* sglua_checkudata_debug(lua_State* L, int ud, const char* tname) int has_mt = lua_getmetatable(L, ud); XBT_DEBUG("Checking the userdata: has metatable ? %d", has_mt); - const void* actual_mt = NULL; + const void* actual_mt = nullptr; if (has_mt) { actual_mt = lua_topointer(L, -1); lua_pop(L, 1); @@ -198,8 +195,8 @@ void* sglua_checkudata_debug(lua_State* L, int ud, const char* tname) XBT_DEBUG("Checking the task's metatable: expected %p, found %p", correct_mt, actual_mt); sglua_stack_dump(L, "my_checkudata: "); - if (p == NULL || !lua_getmetatable(L, ud) || !lua_rawequal(L, -1, -2)) - XBT_ERROR("Error: Userdata is NULL, couldn't find metatable or top of stack does not equal element below it."); + if (p == nullptr || not lua_getmetatable(L, ud) || not lua_rawequal(L, -1, -2)) + XBT_ERROR("Error: Userdata is nullptr, couldn't find metatable or top of stack does not equal element below it."); lua_pop(L, 2); return p; } @@ -210,18 +207,17 @@ void* sglua_checkudata_debug(lua_State* L, int ud, const char* tname) * This function is a valid lua_Writer that writes into a memory buffer passed * as userdata. * - * @param L a lua state - * @param source some data - * @param sz number of bytes of data - * @param user_data the memory buffer to write + * @param L a lua state + * @param source some data + * @param size number of bytes of data + * @param userdata the memory buffer to write */ -int sglua_memory_writer(lua_State* L, const void* source, size_t size, - void* userdata) { - - sglua_buffer_t buffer = (sglua_buffer_t) userdata; +int sglua_memory_writer(lua_State* L, const void* source, size_t size, void* userdata) +{ + sglua_buffer_t buffer = static_cast(userdata); while (buffer->capacity < buffer->size + size) { buffer->capacity *= 2; - buffer->data = (char*)xbt_realloc(buffer->data, buffer->capacity); + buffer->data = static_cast(xbt_realloc(buffer->data, buffer->capacity)); } memcpy(buffer->data + buffer->size, source, size); buffer->size += size;