[pygccxml-commit] source/pyplusplus/module_creator creator.py,1.66,1.67
Brought to you by:
mbaas,
roman_yakovenko
From: Roman <rom...@us...> - 2006-04-23 14:39:06
|
Update of /cvsroot/pygccxml/source/pyplusplus/module_creator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29364/pyplusplus/module_creator Modified Files: creator.py Log Message: adding new functionality: if class is used as member variabel, but does not have public assign operator, def_readonly will be used if class has pointer as member variable, it is exposed correctly Index: creator.py =================================================================== RCS file: /cvsroot/pygccxml/source/pyplusplus/module_creator/creator.py,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** creator.py 20 Apr 2006 05:40:04 -0000 1.66 --- creator.py 23 Apr 2006 14:39:00 -0000 1.67 *************** *** 162,169 **** members = [] for member in class_decl.public_members: ! if isinstance( member, declarations.variable_t ) \ ! and member.bits == 0 \ ! and member.name == "": ! continue #alignement bit members.append( member ) #protected and private virtual functions that not overridable and not pure --- 162,172 ---- members = [] for member in class_decl.public_members: ! if isinstance( member, declarations.variable_t ) : ! if member.bits == 0 and member.name == "": ! continue #alignement bit ! type_ = declarations.remove_const( member.type ) ! if declarations.is_pointer( type_ ) \ ! and member.type_qualifiers.has_static: ! continue #right now I don't know what code should be generated in this case members.append( member ) #protected and private virtual functions that not overridable and not pure *************** *** 239,248 **** if isinstance( member, declarations.destructor_t ): continue ! if isinstance( member, declarations.variable_t ) and member.bits: ! return True if isinstance( member, declarations.class_t ): return True - if isinstance( member, declarations.variable_t ) and declarations.is_array( member.type ): - return True if isinstance( member, declarations.member_calldef_t ): if member.access_type != declarations.ACCESS_TYPES.PUBLIC: --- 242,254 ---- if isinstance( member, declarations.destructor_t ): continue ! if isinstance( member, declarations.variable_t ): ! if member.bits: ! return True ! if declarations.is_pointer( member.type ): ! return True ! if declarations.is_array( member.type ): ! return True if isinstance( member, declarations.class_t ): return True if isinstance( member, declarations.member_calldef_t ): if member.access_type != declarations.ACCESS_TYPES.PUBLIC: *************** *** 600,603 **** --- 606,612 ---- wrapper = code_creators.array_mv_wrapper_t( variable=self.__curr_decl ) maker = code_creators.array_mv_t( variable=self.__curr_decl, wrapper=wrapper ) + elif declarations.is_pointer( self.__curr_decl.type ): + wrapper = code_creators.member_variable_wrapper_t( variable=self.__curr_decl ) + maker = code_creators.member_variable_t( variable=self.__curr_decl, wrapper=wrapper ) else: maker = code_creators.member_variable_t( variable=self.__curr_decl ) |