diff --git a/efl/eolian/__init__.pyx b/efl/eolian/__init__.pyx index 1969855..d39f764 100644 --- a/efl/eolian/__init__.pyx +++ b/efl/eolian/__init__.pyx @@ -663,8 +663,16 @@ cdef class Class(object): :return: the class """ + cdef: + const Eolian_Class *klass + Class ret if isinstance(class_name, unicode): class_name = PyUnicode_AsUTF8String(class_name) - cdef const Eolian_Class *klass = eolian_class_get_by_name(class_name) + klass = eolian_class_get_by_name(class_name) + if klass is NULL: + return + ret = Class.__new__(Class) + ret._set_obj(klass) + return ret @classmethod def get_by_file(cls, file_name): @@ -674,8 +682,16 @@ cdef class Class(object): :return: the class stored in the file """ + cdef: + const Eolian_Class *klass + Class ret if isinstance(file_name, unicode): file_name = PyUnicode_AsUTF8String(file_name) - cdef const Eolian_Class *klass = eolian_class_get_by_file(file_name) + klass = eolian_class_get_by_file(file_name) + if klass is NULL: + return + ret = Class.__new__(Class) + ret._set_obj(klass) + return ret property filename: """Returns the name of the file containing the given class.