Clear vector after deleting all tokens
Ensures that iteration over vec_out by caller doesn't occur (such as in a loop to free the memory).
This commit is contained in:
@@ -37,6 +37,7 @@ pp_err_t preprocess_use_blocks(const vector<token_t *> &tokens,
|
|||||||
tokens[i + 1]->type != token_type_t::LITERAL_STRING)
|
tokens[i + 1]->type != token_type_t::LITERAL_STRING)
|
||||||
{
|
{
|
||||||
VCLEAR(vec_out);
|
VCLEAR(vec_out);
|
||||||
|
vec_out.clear();
|
||||||
return pp_err_t(pp_err_type_t::EXPECTED_STRING, t);
|
return pp_err_t(pp_err_type_t::EXPECTED_STRING, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +46,7 @@ pp_err_t preprocess_use_blocks(const vector<token_t *> &tokens,
|
|||||||
if (!source)
|
if (!source)
|
||||||
{
|
{
|
||||||
VCLEAR(vec_out);
|
VCLEAR(vec_out);
|
||||||
|
vec_out.clear();
|
||||||
return pp_err_t(pp_err_type_t::FILE_NONEXISTENT, name);
|
return pp_err_t(pp_err_type_t::FILE_NONEXISTENT, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,6 +55,7 @@ pp_err_t preprocess_use_blocks(const vector<token_t *> &tokens,
|
|||||||
if (lerr.type != lerr_type_t::OK)
|
if (lerr.type != lerr_type_t::OK)
|
||||||
{
|
{
|
||||||
VCLEAR(vec_out);
|
VCLEAR(vec_out);
|
||||||
|
vec_out.clear();
|
||||||
return pp_err_t(pp_err_type_t::FILE_PARSE_ERROR, name, lerr);
|
return pp_err_t(pp_err_type_t::FILE_PARSE_ERROR, name, lerr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,6 +123,7 @@ pp_err_t preprocess_const_blocks(const vector<token_t *> &tokens,
|
|||||||
if (it == blocks.end())
|
if (it == blocks.end())
|
||||||
{
|
{
|
||||||
VCLEAR(vec_out);
|
VCLEAR(vec_out);
|
||||||
|
vec_out.clear();
|
||||||
return pp_err_t(pp_err_type_t::UNKNOWN_NAME, token);
|
return pp_err_t(pp_err_type_t::UNKNOWN_NAME, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user