From 55d66c96d363994c2e310a1e5d7dc7cb499114ac Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 26 Apr 2022 22:28:41 +0200 Subject: [PATCH] Berry fix assertion violation when loading bytecode --- lib/libesp32/berry/src/be_bytecode.c | 6 +++--- lib/libesp32/berry/src/be_var.c | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/libesp32/berry/src/be_bytecode.c b/lib/libesp32/berry/src/be_bytecode.c index 90ff79c6f..8cea36022 100644 --- a/lib/libesp32/berry/src/be_bytecode.c +++ b/lib/libesp32/berry/src/be_bytecode.c @@ -492,7 +492,7 @@ static void load_constant(bvm *vm, void *fp, bproto *proto, int version) } } -static void load_proto_table(bvm *vm, void *fp, bproto *proto, int version) +static void load_proto_table(bvm *vm, void *fp, bproto *proto, int info, int version) { int size = (int)load_long(fp); /* proto count */ if (size) { @@ -501,7 +501,7 @@ static void load_proto_table(bvm *vm, void *fp, bproto *proto, int version) proto->ptab = p; proto->nproto = size; while (size--) { - load_proto(vm, fp, p++, -1, version); + load_proto(vm, fp, p++, info, version); } } } @@ -538,7 +538,7 @@ static bbool load_proto(bvm *vm, void *fp, bproto **proto, int info, int version } load_bytecode(vm, fp, *proto, info); load_constant(vm, fp, *proto, version); - load_proto_table(vm, fp, *proto, version); + load_proto_table(vm, fp, *proto, info, version); load_upvals(vm, fp, *proto); return btrue; } diff --git a/lib/libesp32/berry/src/be_var.c b/lib/libesp32/berry/src/be_var.c index 9960e7cc3..1a8e5b18c 100644 --- a/lib/libesp32/berry/src/be_var.c +++ b/lib/libesp32/berry/src/be_var.c @@ -12,6 +12,7 @@ #include "be_map.h" #include "be_gc.h" #include "be_class.h" +#include #define global(vm) ((vm)->gbldesc.global) #define builtin(vm) ((vm)->gbldesc.builtin)