Skip to content

Commit 564c13a

Browse files
author
livecodeali
committed
[ CID 120052 ] Fix resource leak
Ensure that ParserMatchConstant always increases the refcount of its returned value, so that the caller can release safely.
1 parent a5e3fb3 commit 564c13a

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

lcidlc/src/Parser.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ static bool ParserMatchConstant(ParserRef self, ValueRef& r_value)
314314
self -> position = t_token -> start;
315315

316316
if (!t_is_bool)
317-
r_value = t_token -> value;
317+
r_value = ValueRetain(t_token -> value);
318318

319319
return true;
320320
}
@@ -835,10 +835,12 @@ static bool ParserReduceParameterDefinition(ParserRef self)
835835
return false;
836836
}
837837

838-
if (!InterfaceDefineHandlerParameter(self -> interface, t_position, t_parameter_type, t_name, t_type, t_is_optional, t_default))
839-
return false;
840-
841-
return true;
838+
bool t_success;
839+
t_success = InterfaceDefineHandlerParameter(self -> interface, t_position, t_parameter_type, t_name, t_type, t_is_optional, t_default);
840+
841+
ValueRelease(t_default);
842+
843+
return t_success;
842844
}
843845

844846
static bool ParserReduceReturnDefinition(ParserRef self)

0 commit comments

Comments
 (0)