Fixed some memleaks (#8107)
Improved memleak location reporting for parse_script
This commit is contained in:
parent
f5909c3d78
commit
d3fcb66d3a
@ -4290,7 +4290,7 @@ uint64 RandomOptionDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
||||
return 0;
|
||||
|
||||
if (randopt->script) {
|
||||
aFree(randopt->script);
|
||||
script_free_code( randopt->script );
|
||||
randopt->script = nullptr;
|
||||
}
|
||||
|
||||
|
@ -5159,10 +5159,7 @@ static const char* npc_parse_function(char* w1, char* w2, char* w3, char* w4, co
|
||||
struct script_code *oldscript = (struct script_code*)db_data2ptr(&old_data);
|
||||
|
||||
ShowInfo("npc_parse_function: Overwriting user function [%s] (%s:%d)\n", w3, filepath, strline(buffer,start-buffer));
|
||||
script_stop_scriptinstances(oldscript);
|
||||
script_free_vars(oldscript->local.vars);
|
||||
aFree(oldscript->script_buf);
|
||||
aFree(oldscript);
|
||||
script_free_code( oldscript );
|
||||
}
|
||||
|
||||
return end;
|
||||
|
@ -2472,8 +2472,7 @@ void script_warning(const char* src, const char* file, int start_line, const cha
|
||||
/*==========================================
|
||||
* Analysis of the script
|
||||
*------------------------------------------*/
|
||||
struct script_code* parse_script(const char *src,const char *file,int line,int options)
|
||||
{
|
||||
struct script_code* parse_script_( const char *src, const char *file, int line, int options, const char* src_file, int src_line, const char* src_func ){
|
||||
const char *p,*tmpp;
|
||||
int i;
|
||||
struct script_code* code = NULL;
|
||||
@ -2653,7 +2652,7 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o
|
||||
}
|
||||
#endif
|
||||
|
||||
CREATE(code,struct script_code,1);
|
||||
CREATE2( code, struct script_code, 1, src_file, src_line, src_func );
|
||||
code->script_buf = script_buf;
|
||||
code->script_size = script_size;
|
||||
code->local.vars = NULL;
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <common/database.hpp>
|
||||
#include <common/cbasetypes.hpp>
|
||||
#include <common/db.hpp>
|
||||
#include <common/malloc.hpp>
|
||||
#include <common/mmo.hpp>
|
||||
#include <common/timer.hpp>
|
||||
|
||||
@ -2205,7 +2206,8 @@ void script_error(const char* src, const char* file, int start_line, const char*
|
||||
void script_warning(const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
|
||||
|
||||
bool is_number(const char *p);
|
||||
struct script_code* parse_script(const char* src,const char* file,int line,int options);
|
||||
struct script_code* parse_script_( const char *src, const char *file, int line, int options, const char* src_file, int src_line, const char* src_func );
|
||||
#define parse_script( src, file, line, options ) parse_script_( ( src ), ( file ), ( line ), ( options ), ALC_MARK )
|
||||
void run_script(struct script_code *rootscript,int pos,int rid,int oid);
|
||||
|
||||
bool set_reg_num(struct script_state* st, map_session_data* sd, int64 num, const char* name, const int64 value, struct reg_db *ref);
|
||||
|
Loading…
x
Reference in New Issue
Block a user