some optimize

This commit is contained in:
blueloveTH 2024-04-20 11:50:28 +08:00
parent 237fd57b66
commit 16d595b6b4
3 changed files with 1 additions and 36 deletions

View File

@ -196,10 +196,6 @@ struct Py_<Function> final: PyObject {
_value.decl->_gc_mark(); _value.decl->_gc_mark();
if(_value._closure != nullptr) gc_mark_namedict(*_value._closure); if(_value._closure != nullptr) gc_mark_namedict(*_value._closure);
} }
void* _value_ptr() override {
return &_value;
}
}; };
template<> template<>
@ -214,9 +210,6 @@ struct Py_<NativeFunc> final: PyObject {
_value.decl->_gc_mark(); _value.decl->_gc_mark();
} }
} }
void* _value_ptr() override {
return &_value;
}
}; };
template<typename T> template<typename T>

View File

@ -104,7 +104,6 @@ struct PyObject{
PyObject* attr(StrName name) const { return (*_attr)[name]; } PyObject* attr(StrName name) const { return (*_attr)[name]; }
virtual void _obj_gc_mark() = 0; virtual void _obj_gc_mark() = 0;
virtual void* _value_ptr() = 0;
PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {} PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {}
@ -128,7 +127,6 @@ struct PySignalObject: PyObject {
gc_enabled = false; gc_enabled = false;
} }
void _obj_gc_mark() override {} void _obj_gc_mark() override {}
void* _value_ptr() override { return nullptr; }
}; };
inline PyObject* const PY_NULL = new PySignalObject(); inline PyObject* const PY_NULL = new PySignalObject();
@ -170,8 +168,6 @@ struct Py_ final: PyObject {
} }
} }
void* _value_ptr() override { return &_value; }
template <typename... Args> template <typename... Args>
Py_(Type type, Args&&... args) : PyObject(type), _value(std::forward<Args>(args)...) { } Py_(Type type, Args&&... args) : PyObject(type), _value(std::forward<Args>(args)...) { }
}; };
@ -215,7 +211,6 @@ struct Py_<i64> final: PyObject {
i64 _value; i64 _value;
Py_(Type type, i64 val): PyObject(type), _value(val) {} Py_(Type type, i64 val): PyObject(type), _value(val) {}
void _obj_gc_mark() override {} void _obj_gc_mark() override {}
void* _value_ptr() override { return &_value; }
}; };
inline bool try_cast_int(PyObject* obj, i64* val) noexcept { inline bool try_cast_int(PyObject* obj, i64* val) noexcept {
@ -239,7 +234,6 @@ struct Py_<List> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
for(PyObject* obj: _value) PK_OBJ_MARK(obj); for(PyObject* obj: _value) PK_OBJ_MARK(obj);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -251,7 +245,6 @@ struct Py_<Tuple> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
for(PyObject* obj: _value) PK_OBJ_MARK(obj); for(PyObject* obj: _value) PK_OBJ_MARK(obj);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -261,7 +254,6 @@ struct Py_<MappingProxy> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
PK_OBJ_MARK(_value.obj); PK_OBJ_MARK(_value.obj);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -272,7 +264,6 @@ struct Py_<BoundMethod> final: PyObject {
PK_OBJ_MARK(_value.self); PK_OBJ_MARK(_value.self);
PK_OBJ_MARK(_value.func); PK_OBJ_MARK(_value.func);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -282,7 +273,6 @@ struct Py_<StarWrapper> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
PK_OBJ_MARK(_value.obj); PK_OBJ_MARK(_value.obj);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -292,7 +282,6 @@ struct Py_<StaticMethod> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
PK_OBJ_MARK(_value.func); PK_OBJ_MARK(_value.func);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -302,7 +291,6 @@ struct Py_<ClassMethod> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
PK_OBJ_MARK(_value.func); PK_OBJ_MARK(_value.func);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -313,7 +301,6 @@ struct Py_<Property> final: PyObject {
PK_OBJ_MARK(_value.getter); PK_OBJ_MARK(_value.getter);
PK_OBJ_MARK(_value.setter); PK_OBJ_MARK(_value.setter);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -325,7 +312,6 @@ struct Py_<Slice> final: PyObject {
PK_OBJ_MARK(_value.stop); PK_OBJ_MARK(_value.stop);
PK_OBJ_MARK(_value.step); PK_OBJ_MARK(_value.step);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -336,7 +322,6 @@ struct Py_<Super> final: PyObject {
void _obj_gc_mark() override { void _obj_gc_mark() override {
PK_OBJ_MARK(_value.first); PK_OBJ_MARK(_value.first);
} }
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -345,7 +330,6 @@ struct Py_<DummyInstance> final: PyObject {
_enable_instance_dict(); _enable_instance_dict();
} }
void _obj_gc_mark() override {} void _obj_gc_mark() override {}
void* _value_ptr() override { return nullptr; }
}; };
template<> template<>
@ -355,7 +339,6 @@ struct Py_<Type> final: PyObject {
_enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR);
} }
void _obj_gc_mark() override {} void _obj_gc_mark() override {}
void* _value_ptr() override { return &_value; }
}; };
template<> template<>
@ -364,7 +347,6 @@ struct Py_<DummyModule> final: PyObject {
_enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR); _enable_instance_dict(PK_TYPE_ATTR_LOAD_FACTOR);
} }
void _obj_gc_mark() override {} void _obj_gc_mark() override {}
void* _value_ptr() override { return nullptr; }
}; };
} // namespace pkpy } // namespace pkpy

View File

@ -93,7 +93,7 @@ __NEXT_STEP:;
#if PK_DEBUG_CEVAL_STEP #if PK_DEBUG_CEVAL_STEP
_log_s_data(); _log_s_data();
#endif #endif
switch (byte.op) switch ((Opcode)byte.op)
{ {
TARGET(NO_OP) DISPATCH(); TARGET(NO_OP) DISPATCH();
/*****************************************/ /*****************************************/
@ -909,16 +909,6 @@ __NEXT_STEP:;
*p = VAR(CAST(i64, *p) - 1); *p = VAR(CAST(i64, *p) - 1);
} DISPATCH(); } 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;
} }
} }