mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 18:56:38 +00:00
Berry fix crash when generating bytecode of empty class (#17688)
This commit is contained in:
parent
1acd9b867c
commit
9ba3c26a8a
@ -160,11 +160,12 @@ static bstring** save_members(bvm *vm, void *fp, bclass *c, int nvar)
|
|||||||
static void save_class(bvm *vm, void *fp, bclass *c)
|
static void save_class(bvm *vm, void *fp, bclass *c)
|
||||||
{
|
{
|
||||||
bstring **vars;
|
bstring **vars;
|
||||||
int i, count = be_map_count(c->members);
|
int i, count = c->members ? be_map_count(c->members) : 0;
|
||||||
int nvar = c->nvar - be_class_closure_count(c);
|
int nvar = c->nvar - be_class_closure_count(c);
|
||||||
save_string(fp, c->name);
|
save_string(fp, c->name);
|
||||||
save_long(fp, nvar); /* member variables count */
|
save_long(fp, nvar); /* member variables count */
|
||||||
save_long(fp, count - nvar); /* method count */
|
save_long(fp, count - nvar); /* method count */
|
||||||
|
if (count > 0) {
|
||||||
vars = save_members(vm, fp, c, nvar);
|
vars = save_members(vm, fp, c, nvar);
|
||||||
if (vars != NULL) {
|
if (vars != NULL) {
|
||||||
for (i = 0; i < nvar; ++i) {
|
for (i = 0; i < nvar; ++i) {
|
||||||
@ -172,6 +173,7 @@ static void save_class(bvm *vm, void *fp, bclass *c)
|
|||||||
}
|
}
|
||||||
be_free(vm, vars, sizeof(bstring *) * nvar);
|
be_free(vm, vars, sizeof(bstring *) * nvar);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void save_value(bvm *vm, void *fp, bvalue *v)
|
static void save_value(bvm *vm, void *fp, bvalue *v)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user