fix invalid free in code cleanup
parent
f3fd6892bc
commit
e3310ce74f
|
@ -19,7 +19,7 @@ static inline void csv_cleanup(CsValueType tv, T &stor) {
|
||||||
case CsValueType::Code: {
|
case CsValueType::Code: {
|
||||||
ostd::Uint32 *bcode = csv_get<ostd::Uint32 *>(stor);
|
ostd::Uint32 *bcode = csv_get<ostd::Uint32 *>(stor);
|
||||||
if (bcode[-1] == CsCodeStart) {
|
if (bcode[-1] == CsCodeStart) {
|
||||||
delete[] bcode;
|
delete[] &bcode[-1];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,7 +443,7 @@ static inline void cs_call_alias(
|
||||||
CsAliasInternal::compile_code(a, cs)
|
CsAliasInternal::compile_code(a, cs)
|
||||||
);
|
);
|
||||||
bcode_incr(codep);
|
bcode_incr(codep);
|
||||||
runcode(cs, codep+1, (result));
|
runcode(cs, codep+1, result);
|
||||||
bcode_decr(codep);
|
bcode_decr(codep);
|
||||||
cs.p_callstack = aliaslink.next;
|
cs.p_callstack = aliaslink.next;
|
||||||
cs.identflags = oldflags;
|
cs.identflags = oldflags;
|
||||||
|
|
Loading…
Reference in New Issue