Skip to content

Commit cb88161

Browse files
committed
Fixed a memory leak
1 parent 6e3fbe3 commit cb88161

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/asar/interface-lib.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ void warn(int errid, const char * str)
128128
fillerror(warnings[numwarn++], errid, STR "warning: (" + get_warning_name((asar_warning_id)errid) + "): ", str, show_block);
129129
}
130130

131+
132+
static autoarray<definedata> ddata;
133+
static int definesinddata=0;
134+
135+
131136
static void resetdllstuff()
132137
{
133138
#define free_and_null(x) free((void*)x); x = nullptr
@@ -159,6 +164,14 @@ static void resetdllstuff()
159164
}
160165
warnings.reset();
161166
numwarn=0;
167+
168+
for (int i=0;i<definesinddata;i++)
169+
{
170+
free_and_null(ddata[i].name);
171+
free_and_null(ddata[i].contents);
172+
}
173+
ddata.reset();
174+
definesinddata=0;
162175
#undef free_and_null
163176

164177
romCrc = 0;
@@ -546,9 +559,6 @@ EXPORT const char * asar_resolvedefines(const char * data)
546559
return out;
547560
}
548561

549-
static autoarray<definedata> ddata;
550-
static int definesinddata=0;
551-
552562
static void adddef(const string& name, string& value)
553563
{
554564
definedata define;

0 commit comments

Comments
 (0)