fix a bug

This commit is contained in:
blueloveTH 2022-12-06 03:28:46 +08:00
parent 35aca12e50
commit 991c4926d5
2 changed files with 16 additions and 8 deletions

View File

@ -31,4 +31,4 @@
#define UNREACHABLE() throw std::runtime_error( __FILE__ + std::string(":") + std::to_string(__LINE__) + " UNREACHABLE()!");
#endif
#define PK_VERSION "0.4.6"
#define PK_VERSION "0.4.7"

View File

@ -650,8 +650,8 @@ void __addModuleJson(VM* vm){
void __addModuleMath(VM* vm){
PyVar mod = vm->newModule("math");
vm->setAttr(mod, "pi", vm->PyFloat(3.14159265358979323846));
vm->setAttr(mod, "e", vm->PyFloat(2.7182818284590452354));
vm->setAttr(mod, "pi", vm->PyFloat(3.1415926535897932384));
vm->setAttr(mod, "e" , vm->PyFloat(2.7182818284590452354));
vm->bindFunc(mod, "log", [](VM* vm, const pkpy::ArgList& args) {
vm->__checkArgSize(args, 1);
@ -719,7 +719,7 @@ public:
extern "C" {
__EXPORT
/// Delete a class pointer allocated by `pkpy_xxx_xxx`.
/// Delete a pointer allocated by `pkpy_xxx_xxx`.
/// It can be `VM*`, `REPL*`, `ThreadedVM*`, `char*`, etc.
///
/// !!!
@ -756,8 +756,12 @@ extern "C" {
char* pkpy_vm_get_global(VM* vm, const char* name){
auto it = vm->_main->attribs.find(name);
if(it == vm->_main->attribs.end()) return nullptr;
_Str _json = vm->PyStr_AS_C(vm->asJson(it->second));
return strdup(_json.c_str());
try{
_Str _json = vm->PyStr_AS_C(vm->asJson(it->second));
return strdup(_json.c_str());
}catch(...){
return nullptr;
}
}
__EXPORT
@ -770,8 +774,12 @@ extern "C" {
if(code == nullptr) return nullptr;
PyVarOrNull ret = vm->exec(code);
if(ret == nullptr) return nullptr;
_Str _json = vm->PyStr_AS_C(vm->asJson(ret));
return strdup(_json.c_str());
try{
_Str _json = vm->PyStr_AS_C(vm->asJson(ret));
return strdup(_json.c_str());
}catch(...){
return nullptr;
}
}
__EXPORT