Revision: 469
Author: allenb
Date: 2006-08-25 15:16:54 -0700 (Fri, 25 Aug 2006)
ViewCVS: http://svn.sourceforge.net/pygccxml/?rev=469&view=rev
Log Message:
-----------
- Cache the member_access_type.
This change makes my build generation script run ~3x faster. Your mileage may vary.
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/class_declaration.py
Modified: pygccxml_dev/pygccxml/declarations/class_declaration.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/class_declaration.py 2006-08-25 18:24:08 UTC (rev 468)
+++ pygccxml_dev/pygccxml/declarations/class_declaration.py 2006-08-25 22:16:54 UTC (rev 469)
@@ -315,12 +315,20 @@
@return: L{ACCESS_TYPES}
"""
- assert member.parent is self
- if member in self.public_members:
- return ACCESS_TYPES.PUBLIC
- elif member in self.protected_members:
- return ACCESS_TYPES.PROTECTED
- elif member in self.private_members:
- return ACCESS_TYPES.PRIVATE
+ assert member.parent is self
+ cached_access_type = getattr(member, "_cached_access_type", None)
+ if cached_access_type:
+ return cached_access_type
else:
- raise RuntimeError( "Unable to find member within internal members list." )
+ access_type = None
+ if member in self.public_members:
+ access_type = ACCESS_TYPES.PUBLIC
+ elif member in self.protected_members:
+ access_type = ACCESS_TYPES.PROTECTED
+ elif member in self.private_members:
+ access_type = ACCESS_TYPES.PRIVATE
+ else:
+ raise RuntimeError( "Unable to find member within internal members list." )
+ setattr(member, "_cached_access_type", access_type)
+ return access_type
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|