1313#include <lauxlib.h>
1414#include <lualib.h>
1515
16+ extern char * lm_asprintf (char const * fmt , ...);
17+
1618/* ---------------------------------------------------------------------------
1719 * LDB: Lua debugging facilities
1820 * ------------------------------------------------------------------------- */
@@ -375,10 +377,9 @@ static void ldbPrintAll(lua_State *lua) {
375377 while ((name = lua_getlocal (lua , & ar , i )) != NULL ) {
376378 i ++ ;
377379 if (!strstr (name , "(*temporary)" )) {
378- char * prefix ;
379- asprintf (& prefix , "<value> %s = " , name );
380+ char * prefix = lm_asprintf ("<value> %s = " , name );
380381 ldbLogStackValue (lua , prefix );
381- free (prefix );
382+ ValkeyModule_Free (prefix );
382383 vars ++ ;
383384 }
384385 lua_pop (lua , 1 );
@@ -397,10 +398,9 @@ static void ldbBreak(ValkeyModuleString **argv, int argc) {
397398 ldbLogCString ("No breakpoints set. Use 'b <line>' to add one." );
398399 return ;
399400 } else {
400- char * msg ;
401- asprintf (& msg , "%i breakpoints set:" , ldb .bpcount );
401+ char * msg = lm_asprintf ("%i breakpoints set:" , ldb .bpcount );
402402 ldbLogCString (msg );
403- free (msg );
403+ ValkeyModule_Free (msg );
404404 int j ;
405405 for (j = 0 ; j < ldb .bpcount ; j ++ ) ldbLogSourceLine (ldb .bp [j ]);
406406 }
@@ -411,10 +411,9 @@ static void ldbBreak(ValkeyModuleString **argv, int argc) {
411411 int res = ValkeyModule_StringToLongLong (argv [j ], & line );
412412 if (res != VALKEYMODULE_OK ) {
413413 const char * arg = ValkeyModule_StringPtrLen (argv [j ], NULL );
414- char * msg ;
415- asprintf (& msg , "Invalid argument:'%s'" , arg );
414+ char * msg = lm_asprintf ("Invalid argument:'%s'" , arg );
416415 ldbLogCString (msg );
417- free (msg );
416+ ValkeyModule_Free (msg );
418417 } else {
419418 if (line == 0 ) {
420419 ldb .bpcount = 0 ;
@@ -466,10 +465,9 @@ static void ldbEval(lua_State *lua, ValkeyModuleString **argv, int argc) {
466465 lua_pop (lua , 1 );
467466 /* Failed? Try as a statement. */
468467 if (luaL_loadbuffer (lua , code_str , code_len , "@ldb_eval" )) {
469- char * err_msg ;
470- asprintf (& err_msg , "Error compiling code: %s" , lua_tostring (lua , -1 ));
468+ char * err_msg = lm_asprintf ("Error compiling code: %s" , lua_tostring (lua , -1 ));
471469 ldbLogCString (err_msg );
472- free (err_msg );
470+ ValkeyModule_Free (err_msg );
473471 ValkeyModule_FreeString (NULL , code );
474472 ValkeyModule_FreeString (NULL , expr );
475473 return ;
@@ -480,10 +478,9 @@ static void ldbEval(lua_State *lua, ValkeyModuleString **argv, int argc) {
480478 ValkeyModule_FreeString (NULL , code );
481479 ValkeyModule_FreeString (NULL , expr );
482480 if (lua_pcall (lua , 0 , 1 , 0 )) {
483- char * err_msg ;
484- asprintf (& err_msg , "<error> %s" , lua_tostring (lua , -1 ));
481+ char * err_msg = lm_asprintf ("<error> %s" , lua_tostring (lua , -1 ));
485482 ldbLogCString (err_msg );
486- free (err_msg );
483+ ValkeyModule_Free (err_msg );
487484 lua_pop (lua , 1 );
488485 return ;
489486 }
@@ -532,10 +529,9 @@ static void ldbTrace(lua_State *lua) {
532529 while (lua_getstack (lua , level , & ar )) {
533530 lua_getinfo (lua , "Snl" , & ar );
534531 if (strstr (ar .short_src , "user_script" ) != NULL ) {
535- char * msg ;
536- asprintf (& msg , "%s %s:" , (level == 0 ) ? "In" : "From" , ar .name ? ar .name : "top level" );
532+ char * msg = lm_asprintf ("%s %s:" , (level == 0 ) ? "In" : "From" , ar .name ? ar .name : "top level" );
537533 ldbLogCString (msg );
538- free (msg );
534+ ValkeyModule_Free (msg );
539535 ldbLogSourceLine (ar .currentline );
540536 }
541537 level ++ ;
0 commit comments