Sfoglia il codice sorgente

change `_import_handler`

blueloveTH 1 anno fa
parent
commit
620c1d2882
6 ha cambiato i file con 9 aggiunte e 12 eliminazioni
  1. 0 2
      include/pocketpy/config.h
  2. 1 1
      include/pocketpy/io.h
  3. 1 1
      include/pocketpy/pocketpy_c.h
  4. 1 1
      include/pocketpy/vm.h
  5. 3 4
      src/io.cpp
  6. 3 3
      src/vm.cpp

+ 0 - 2
include/pocketpy/config.h

@@ -36,8 +36,6 @@
 #define PK_DEBUG_EXTRA_CHECK        0
 
 // Do not edit the following settings unless you know what you are doing
-#define PK_DEBUG_NO_BUILTINS        0
-#define PK_DEBUG_DIS_EXEC           0
 #define PK_DEBUG_CEVAL_STEP         0
 #define PK_DEBUG_MEMORY_POOL        0
 #define PK_DEBUG_NO_MEMORY_POOL     0

+ 1 - 1
include/pocketpy/io.h

@@ -3,7 +3,7 @@
 #include "bindings.h"
 
 namespace pkpy{
-    unsigned char* _default_import_handler(const char*, int, int*);
+    unsigned char* _default_import_handler(const char*, int*);
     void add_module_os(VM* vm);
     void add_module_io(VM* vm);
 }

+ 1 - 1
include/pocketpy/pocketpy_c.h

@@ -13,7 +13,7 @@ extern "C" {
 typedef struct pkpy_vm_handle pkpy_vm;
 typedef int (*pkpy_CFunction)(pkpy_vm*);
 typedef void (*pkpy_COutputHandler)(const char*, int);
-typedef unsigned char* (*pkpy_CImportHandler)(const char*, int, int*);
+typedef unsigned char* (*pkpy_CImportHandler)(const char*, int*);
 typedef int pkpy_CName;
 typedef int pkpy_CType;
 typedef const char* pkpy_CString;

+ 1 - 1
include/pocketpy/vm.h

@@ -167,7 +167,7 @@ public:
 
     void(*_stdout)(const char*, int);
     void(*_stderr)(const char*, int);
-    unsigned char* (*_import_handler)(const char*, int, int*);
+    unsigned char* (*_import_handler)(const char*, int*);
 
     // for quick access
     static constexpr Type tp_object=Type(0), tp_type=Type(1);

+ 3 - 4
src/io.cpp

@@ -37,11 +37,10 @@ static size_t io_fread(void* buffer, size_t size, size_t count, FILE* fp){
 #endif
 }
 
-unsigned char* _default_import_handler(const char* name_p, int name_size, int* out_size){
-    std::string name(name_p, name_size);
+unsigned char* _default_import_handler(const char* name, int* out_size){
     bool exists = std::filesystem::exists(std::filesystem::path(name));
     if(!exists) return nullptr;
-    FILE* fp = io_fopen(name.c_str(), "rb");
+    FILE* fp = io_fopen(name, "rb");
     if(!fp) return nullptr;
     fseek(fp, 0, SEEK_END);
     int buffer_size = ftell(fp);
@@ -243,7 +242,7 @@ void add_module_os(VM* vm){
 
 void add_module_io(VM* vm){}
 void add_module_os(VM* vm){}
-unsigned char* _default_import_handler(const char* name_p, int name_size, int* out_size){
+unsigned char* _default_import_handler(const char* name, int* out_size){
     return nullptr;
 }
 

+ 3 - 3
src/vm.cpp

@@ -79,7 +79,7 @@ namespace pkpy{
         _stderr = [](const char* buf, int size) { std::cerr.write(buf, size); };
         _main = nullptr;
         __last_exception = nullptr;
-        _import_handler = [](const char* name_p, int name_size, int* out_size) -> unsigned char*{ return nullptr; };
+        _import_handler = [](const char* name, int* out_size) -> unsigned char*{ return nullptr; };
         __init_builtin_types();
     }
 
@@ -358,11 +358,11 @@ namespace pkpy{
         auto it = _lazy_modules.find(name);
         if(it == _lazy_modules.end()){
             int out_size;
-            unsigned char* out = _import_handler(filename.data, filename.size, &out_size);
+            unsigned char* out = _import_handler(filename.c_str(), &out_size);
             if(out == nullptr){
                 filename = path.replace('.', PK_PLATFORM_SEP).str() + PK_PLATFORM_SEP + "__init__.py";
                 is_init = true;
-                out = _import_handler(filename.data, filename.size, &out_size);
+                out = _import_handler(filename.c_str(), &out_size);
             }
             if(out == nullptr){
                 if(throw_err) ImportError(_S("module ", path.escape(), " not found"));