fix unnamed type bug

This commit is contained in:
David Rose 2001-06-06 14:17:03 +00:00
parent aca639e936
commit a5eff41ecc
2 changed files with 8 additions and 0 deletions

View File

@ -1777,6 +1777,11 @@ get_type(CPPType *type, bool global) {
if (tni != _types_by_name.end()) {
// It's already here, so update the global flag.
index = (*tni).second;
if (index == 0) {
// This is an invalid type; we don't know anything about it.
return 0;
}
InterrogateType &itype = InterrogateDatabase::get_ptr()->update_type(index);
if (global) {
itype._flags |= InterrogateType::F_global;

View File

@ -501,6 +501,7 @@ get_next_index() {
////////////////////////////////////////////////////////////////////
void InterrogateDatabase::
add_type(TypeIndex index, const InterrogateType &type) {
assert(index != 0);
bool inserted =
_type_map.insert(TypeMap::value_type(index, type)).second;
@ -593,6 +594,7 @@ add_element(ElementIndex index, const InterrogateElement &element) {
////////////////////////////////////////////////////////////////////
InterrogateType &InterrogateDatabase::
update_type(TypeIndex type) {
assert(type != 0);
check_latest();
return _type_map[type];
}
@ -697,6 +699,7 @@ remap_indices(int first_index, IndexRemapper &remap) {
TypeMap new_type_map;
TypeMap::iterator ti;
for (ti = _type_map.begin(); ti != _type_map.end(); ++ti) {
assert((*ti).first != 0);
remap.add_mapping((*ti).first, first_index);
new_type_map[first_index] = (*ti).second;
first_index++;