@@ -102,11 +102,13 @@ class record_t(object):
102102
103103 def __init__ (
104104 self ,
105+ xml_generator ,
105106 source_signature ,
106107 config_signature ,
107108 included_files ,
108109 included_files_signature ,
109110 declarations ):
111+ self .__xml_generator = xml_generator
110112 self .__source_signature = source_signature
111113 self .__config_signature = config_signature
112114 self .__included_files = included_files
@@ -151,6 +153,10 @@ def included_files_signature(self):
151153 def declarations (self ):
152154 return self .__declarations
153155
156+ @property
157+ def xml_generator (self ):
158+ return self .__xml_generator
159+
154160
155161class file_cache_t (cache_base_t ):
156162
@@ -174,6 +180,23 @@ def __init__(self, name):
174180 self .__cache ) # If empty then we need to flush
175181 for entry in self .__cache .values (): # Clear hit flags
176182 entry .was_hit = False
183+ try :
184+ # Make sure the xml_generator variable is defined, else it
185+ # will stay None.
186+ xml_generator = entry .xml_generator
187+ except AttributeError :
188+ msg = (
189+ "The %s cache file is not compatible with this version " +
190+ "of pygccxml. Please regenerate it." ) % name
191+ raise RuntimeError (msg )
192+ if utils .xml_generator is None :
193+ # Set the xml_generator to the one read in the cache file
194+ utils .xml_generator = xml_generator
195+ elif utils .xml_generator != xml_generator :
196+ msg = (
197+ "The %s cache file was generated with a different xml " +
198+ "generator. Please regenerate it." ) % name
199+ raise RuntimeError (msg )
177200
178201 @staticmethod
179202 def __load (file_name ):
@@ -231,6 +254,7 @@ def update(self, source_file, configuration, declarations, included_files):
231254 """ Update a cached record with the current key and value contents. """
232255
233256 record = record_t (
257+ xml_generator = utils .xml_generator ,
234258 source_signature = file_signature (source_file ),
235259 config_signature = configuration_signature (configuration ),
236260 included_files = included_files ,
0 commit comments