From 16d595b6b409f41c2dae9c055f0b84352771408b Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 20 Apr 2024 11:50:28 +0800 Subject: [PATCH] some optimize --- include/pocketpy/codeobject.h | 7 ------- include/pocketpy/obj.h | 18 ------------------ src/ceval.cpp | 12 +----------- 3 files changed, 1 insertion(+), 36 deletions(-) diff --git a/include/pocketpy/codeobject.h b/include/pocketpy/codeobject.h index 1117adcd..62601284 100644 --- a/include/pocketpy/codeobject.h +++ b/include/pocketpy/codeobject.h @@ -196,10 +196,6 @@ struct Py_ final: PyObject { _value.decl->_gc_mark(); if(_value._closure != nullptr) gc_mark_namedict(*_value._closure); } - - void* _value_ptr() override { - return &_value; - } }; template<> @@ -214,9 +210,6 @@ struct Py_ final: PyObject { _value.decl->_gc_mark(); } } - void* _value_ptr() override { - return &_value; - } }; template diff --git a/include/pocketpy/obj.h b/include/pocketpy/obj.h index e53015f4..fe549698 100644 --- a/include/pocketpy/obj.h +++ b/include/pocketpy/obj.h @@ -104,7 +104,6 @@ struct PyObject{ PyObject* attr(StrName name) const { return (*_attr)[name]; } virtual void _obj_gc_mark() = 0; - virtual void* _value_ptr() = 0; PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {} @@ -128,7 +127,6 @@ struct PySignalObject: PyObject { gc_enabled = false; } void _obj_gc_mark() override {} - void* _value_ptr() override { return nullptr; } }; inline PyObject* const PY_NULL = new PySignalObject(); @@ -170,8 +168,6 @@ struct Py_ final: PyObject { } } - void* _value_ptr() override { return &_value; } - template Py_(Type type, Args&&... args) : PyObject(type), _value(std::forward(args)...) { } }; @@ -215,7 +211,6 @@ struct Py_ final: PyObject { i64 _value; Py_(Type type, i64 val): PyObject(type), _value(val) {} void _obj_gc_mark() override {} - void* _value_ptr() override { return &_value; } }; inline bool try_cast_int(PyObject* obj, i64* val) noexcept { @@ -239,7 +234,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { for(PyObject* obj: _value) PK_OBJ_MARK(obj); } - void* _value_ptr() override { return &_value; } }; template<> @@ -251,7 +245,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { for(PyObject* obj: _value) PK_OBJ_MARK(obj); } - void* _value_ptr() override { return &_value; } }; template<> @@ -261,7 +254,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { PK_OBJ_MARK(_value.obj); } - void* _value_ptr() override { return &_value; } }; template<> @@ -272,7 +264,6 @@ struct Py_ final: PyObject { PK_OBJ_MARK(_value.self); PK_OBJ_MARK(_value.func); } - void* _value_ptr() override { return &_value; } }; template<> @@ -282,7 +273,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { PK_OBJ_MARK(_value.obj); } - void* _value_ptr() override { return &_value; } }; template<> @@ -292,7 +282,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { PK_OBJ_MARK(_value.func); } - void* _value_ptr() override { return &_value; } }; template<> @@ -302,7 +291,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { PK_OBJ_MARK(_value.func); } - void* _value_ptr() override { return &_value; } }; template<> @@ -313,7 +301,6 @@ struct Py_ final: PyObject { PK_OBJ_MARK(_value.getter); PK_OBJ_MARK(_value.setter); } - void* _value_ptr() override { return &_value; } }; template<> @@ -325,7 +312,6 @@ struct Py_ final: PyObject { PK_OBJ_MARK(_value.stop); PK_OBJ_MARK(_value.step); } - void* _value_ptr() override { return &_value; } }; template<> @@ -336,7 +322,6 @@ struct Py_ final: PyObject { void _obj_gc_mark() override { PK_OBJ_MARK(_value.first); } - void* _value_ptr() override { return &_value; } }; template<> @@ -345,7 +330,6 @@ struct Py_ final: PyObject { _enable_instance_dict(); } void _obj_gc_mark() override {} - void* _value_ptr() override { return nullptr; } }; template<> @@ -355,7 +339,6 @@ struct Py_ final: PyObject { _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); } void _obj_gc_mark() override {} - void* _value_ptr() override { return &_value; } }; template<> @@ -364,7 +347,6 @@ struct Py_ final: PyObject { _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); } void _obj_gc_mark() override {} - void* _value_ptr() override { return nullptr; } }; } // namespace pkpy \ No newline at end of file diff --git a/src/ceval.cpp b/src/ceval.cpp index 2d4cf77b..c8b420e4 100644 --- a/src/ceval.cpp +++ b/src/ceval.cpp @@ -93,7 +93,7 @@ __NEXT_STEP:; #if PK_DEBUG_CEVAL_STEP _log_s_data(); #endif - switch (byte.op) + switch ((Opcode)byte.op) { TARGET(NO_OP) DISPATCH(); /*****************************************/ @@ -909,16 +909,6 @@ __NEXT_STEP:; *p = VAR(CAST(i64, *p) - 1); } DISPATCH(); /*****************************************/ - static_assert(OP_DEC_GLOBAL == 136); - case 137: case 138: case 139: case 140: case 141: case 142: case 143: case 144: case 145: case 146: case 147: case 148: case 149: - case 150: case 151: case 152: case 153: case 154: case 155: case 156: case 157: case 158: case 159: case 160: case 161: case 162: case 163: case 164: - case 165: case 166: case 167: case 168: case 169: case 170: case 171: case 172: case 173: case 174: case 175: case 176: case 177: case 178: case 179: - case 180: case 181: case 182: case 183: case 184: case 185: case 186: case 187: case 188: case 189: case 190: case 191: case 192: case 193: case 194: - case 195: case 196: case 197: case 198: case 199: case 200: case 201: case 202: case 203: case 204: case 205: case 206: case 207: case 208: case 209: - case 210: case 211: case 212: case 213: case 214: case 215: case 216: case 217: case 218: case 219: case 220: case 221: case 222: case 223: case 224: - case 225: case 226: case 227: case 228: case 229: case 230: case 231: case 232: case 233: case 234: case 235: case 236: case 237: case 238: case 239: - case 240: case 241: case 242: case 243: case 244: case 245: case 246: case 247: case 248: case 249: case 250: case 251: case 252: case 253: case 254: - case 255: break; } }