Mercurial > projects > ldc
comparison ir/irtypeclass.cpp @ 1265:bbe6d2b87842
Fix interface indices. Closes #269 and #266.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 26 Apr 2009 11:29:30 +0200 |
parents | 752bed475b75 |
children | dd135ff697fa |
comparison
equal
deleted
inserted
replaced
1264:7ffac0079d08 | 1265:bbe6d2b87842 |
---|---|
263 return; | 263 return; |
264 | 264 |
265 // add this interface | 265 // add this interface |
266 interfaceMap.insert(std::make_pair(inter, index)); | 266 interfaceMap.insert(std::make_pair(inter, index)); |
267 | 267 |
268 // add all its base interfaces recursively | 268 // add the direct base interfaces recursively - they |
269 for (size_t i = 0; i < inter->interfaces_dim; i++) | 269 // are accessed through the same index |
270 { | 270 if (inter->interfaces_dim > 0) |
271 BaseClass* b = inter->interfaces[i]; | 271 { |
272 BaseClass* b = inter->interfaces[0]; | |
272 addInterfaceToMap(b->base, index); | 273 addInterfaceToMap(b->base, index); |
273 } | 274 } |
274 } | 275 } |
275 | 276 |
276 ////////////////////////////////////////////////////////////////////////////// | 277 ////////////////////////////////////////////////////////////////////////////// |