Eolian: Fix Class's class methods

This commit is contained in:
Kai Huuhko 2014-09-16 13:55:45 +03:00
parent 9acfcf842e
commit 3324f92276
1 changed files with 18 additions and 2 deletions

View File

@ -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.