From 8fda175c78fbfbeeb276d03e2fe13404c7d79d12 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Mon, 5 Jan 2026 18:02:43 +0800 Subject: [PATCH] minor fix --- src/common/serialize.c | 10 ++++++++-- src/objects/codeobject.c | 1 - src/objects/codeobject_ser.c | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/common/serialize.c b/src/common/serialize.c index e0830c3b..40a001a2 100644 --- a/src/common/serialize.c +++ b/src/common/serialize.c @@ -77,8 +77,14 @@ bool c11_deserializer__check_header(c11_deserializer* self, int16_t magic, int8_ return c11_deserializer__error(self, "bad header: checksum mismatch"); } // check version - if(self->major_ver != major_ver || self->minor_ver > minor_ver){ - return c11_deserializer__error(self, "bad header: version mismatch"); + if(self->major_ver != major_ver){ + return c11_deserializer__error(self, "bad header: major version mismatch"); + } + if(self->minor_ver < minor_ver){ + // file_ver: 1.1, require_ver: 1.0 => ok + // file_ver: 1.1, require_ver: 1.1 => ok + // file_ver: 1.1, require_ver: 1.2 => error + return c11_deserializer__error(self, "bad header: minor version mismatch"); } return true; } diff --git a/src/objects/codeobject.c b/src/objects/codeobject.c index d75f419b..68524a05 100644 --- a/src/objects/codeobject.c +++ b/src/objects/codeobject.c @@ -1,6 +1,5 @@ #include "pocketpy/objects/codeobject.h" #include "pocketpy/common/utils.h" -#include "pocketpy/config.h" #include "pocketpy/pocketpy.h" #include #include diff --git a/src/objects/codeobject_ser.c b/src/objects/codeobject_ser.c index 958ceff1..a94fa92c 100644 --- a/src/objects/codeobject_ser.c +++ b/src/objects/codeobject_ser.c @@ -6,6 +6,7 @@ #define CODEOBJECT_MAGIC 0x434F #define CODEOBJECT_VER_MAJOR 1 #define CODEOBJECT_VER_MINOR 0 +#define CODEOBJECT_VER_MINOR_MIN 0 // Forward declarations static void FuncDecl__serialize(c11_serializer* s, @@ -355,7 +356,7 @@ char* CodeObject__loads(const void* data, int size, CodeObject* out) { if(!c11_deserializer__check_header(&d, CODEOBJECT_MAGIC, CODEOBJECT_VER_MAJOR, - CODEOBJECT_VER_MINOR)) { + CODEOBJECT_VER_MINOR_MIN)) { char* error_msg = c11_strdup(d.error_msg); c11_deserializer__dtor(&d); return error_msg;