diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-01-22 17:06:42 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-01-22 17:06:42 +0300 |
commit | ad65d6995cd87656e3d9b7dee07adbcea16b564c (patch) | |
tree | 4538dd2e8a4e8a406caebc0d63c14b96d20a4814 /source/blender/python/intern/bpy_rna.c | |
parent | 8ec59c7c687b9e50c48a9d455b31ff4c01df69d2 (diff) |
use string/int/length lookup functions for bpy.types, gives 20-30% overall startup time speedup on my system.
Diffstat (limited to 'source/blender/python/intern/bpy_rna.c')
-rw-r--r-- | source/blender/python/intern/bpy_rna.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 97a0dcae290..8784d8b723b 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3472,8 +3472,13 @@ static PyObject *pyrna_basetype_getattro( BPy_BaseTypeRNA *self, PyObject *pynam { PointerRNA newptr; PyObject *ret; + char *name= _PyUnicode_AsString(pyname); - if (RNA_property_collection_lookup_string(&self->ptr, self->prop, _PyUnicode_AsString(pyname), &newptr)) { + if(strcmp(name, "register")==0) { + /* this is called so often, make an exception and save a full lookup on all types */ + ret= PyObject_GenericGetAttr((PyObject *)self, pyname); + } + else if (RNA_property_collection_lookup_string(&self->ptr, self->prop, name, &newptr)) { ret= pyrna_struct_Subtype(&newptr); if (ret==NULL) { PyErr_Format(PyExc_SystemError, "bpy.types.%.200s subtype could not be generated, this is a bug!", _PyUnicode_AsString(pyname)); |