issue warnings on TypeHandle conflicts

This commit is contained in:
David Rose 2005-09-15 15:50:44 +00:00
parent 8960c61c91
commit ed4b03893e

View File

@ -233,14 +233,24 @@ void Dtool_Accum_MethDefs(PyMethodDef in[], MethodDefmap &themap)
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
void RegisterRuntimeClass(Dtool_PyTypedObject * otype, int class_id) void
{ RegisterRuntimeClass(Dtool_PyTypedObject * otype, int class_id) {
if(class_id > 0) if(class_id > 0) {
{ RunTimeTypeDictionary &dict = GetRunTimeDictionary();
GetRunTimeDictionary()[class_id] = otype; pair<RunTimeTypeDictionary::iterator, bool> result =
dict.insert(RunTimeTypeDictionary::value_type(class_id, otype));
if (!result.second) {
// There was already an entry in the dictionary for class_id.
Dtool_PyTypedObject *other_type = (*result.first).second;
interrogatedb_cat.warning()
<< "Classes " << otype->_name << " and " << other_type->_name
<< " share the same TypeHandle value; check class definitions.\n";
} else {
GetRunTimeTypeList().insert(class_id); GetRunTimeTypeList().insert(class_id);
otype->_Dtool_IsRunTimeCapable = true; otype->_Dtool_IsRunTimeCapable = true;
} }
}
}; };
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////