change back to cat->is_debug for static init purposes

This commit is contained in:
David Rose 2001-05-25 04:25:34 +00:00
parent 9186df0881
commit 7dc64e5f8e
2 changed files with 50 additions and 38 deletions

View File

@ -102,9 +102,13 @@ register_type(TypeHandle &type_handle, const string &name) {
// The name was not already used; this is the first time this
// class has been defined.
if (express_cat.is_spam()) {
#ifdef NOTIFY_DEBUG
// This code runs at static init time, so cannot use the
// express_cat.is_spam() syntax.
if (express_cat->is_spam()) {
express_cat->spam() << "Registering type " << name << "\n";
}
#endif
TypeHandle new_handle;
new_handle._index = _handle_registry.size();
@ -119,7 +123,7 @@ register_type(TypeHandle &type_handle, const string &name) {
RegistryNode *rnode = (*ri).second;
nassertr(rnode->_name == (*ri).first, false);
nassertr(rnode->_handle._index >= 0 &&
rnode->_handle._index < (int)_handle_registry.size(), false);
rnode->_handle._index < (int)_handle_registry.size(), false);
nassertr(_handle_registry[rnode->_handle._index] == rnode, false);
nassertr(rnode->_handle._index != 0, false);
@ -175,9 +179,13 @@ register_dynamic_type(const string &name) {
// The name was not already used; this is the first time this
// class has been defined.
if (express_cat.is_spam()) {
#ifdef NOTIFY_DEBUG
// This code runs at static init time, so cannot use the
// express_cat.is_spam() syntax.
if (express_cat->is_spam()) {
express_cat->spam() << "Registering type " << name << "\n";
}
#endif
// We must dynamically allocate a new handle so the RegistryNode
// has something unique to point to. This doesn't really mean
@ -216,7 +224,7 @@ record_derivation(TypeHandle child, TypeHandle parent) {
// already made this connection.
RegistryNode::Classes::iterator ni;
ni = find(cnode->_parent_classes.begin(), cnode->_parent_classes.end(),
pnode);
pnode);
if (ni == cnode->_parent_classes.end()) {
cnode->_parent_classes.push_back(pnode);
@ -241,8 +249,8 @@ record_alternate_name(TypeHandle type, const string &name) {
_name_registry.insert(NameRegistry::value_type(name, rnode)).first;
if ((*ri).second != rnode) {
express_cat.warning()
<< "Name " << name << " already assigned to TypeHandle "
<< rnode->_name << "; cannot reassign to " << type << "\n";
<< "Name " << name << " already assigned to TypeHandle "
<< rnode->_name << "; cannot reassign to " << type << "\n";
}
}
}
@ -296,7 +304,7 @@ get_name(TypeHandle type, TypedObject *object) const {
////////////////////////////////////////////////////////////////////
bool TypeRegistry::
is_derived_from(TypeHandle child, TypeHandle parent,
TypedObject *child_object) const {
TypedObject *child_object) const {
RegistryNode *rnode = look_up(child, child_object);
nassertr(rnode != (RegistryNode *)NULL, false);
return rnode->is_derived_from(parent);
@ -363,7 +371,7 @@ get_parent_class(TypeHandle child, int index) const {
RegistryNode *rnode = look_up(child, (TypedObject *)NULL);
nassertr(rnode != (RegistryNode *)NULL, TypeHandle::none());
nassertr(index >= 0 && index < (int)rnode->_parent_classes.size(),
TypeHandle::none());
TypeHandle::none());
return rnode->_parent_classes[index]->_handle;
}
@ -398,7 +406,7 @@ get_child_class(TypeHandle child, int index) const {
RegistryNode *rnode = look_up(child, (TypedObject *)NULL);
nassertr(rnode != (RegistryNode *)NULL, TypeHandle::none());
nassertr(index >= 0 && index < (int)rnode->_child_classes.size(),
TypeHandle::none());
TypeHandle::none());
return rnode->_child_classes[index]->_handle;
}
@ -418,7 +426,7 @@ get_child_class(TypeHandle child, int index) const {
////////////////////////////////////////////////////////////////////
TypeHandle TypeRegistry::
get_parent_towards(TypeHandle child, TypeHandle ancestor,
TypedObject *child_object) const {
TypedObject *child_object) const {
if (child_object != (TypedObject *)NULL) {
// First, guarantee that the ancestor type is defined.
look_up(ancestor, child_object);
@ -450,7 +458,7 @@ reregister_types() {
RegistryNode *rnode = (*ri);
if (rnode != NULL && rnode->_handle != rnode->_ref) {
express_cat->warning()
<< "Reregistering " << rnode->_name << "\n";
<< "Reregistering " << rnode->_name << "\n";
}
}
}
@ -537,11 +545,11 @@ freshen_root_classes() {
HandleRegistry::iterator hi;
for (hi = _handle_registry.begin();
hi != _handle_registry.end();
++hi) {
hi != _handle_registry.end();
++hi) {
RegistryNode *root = *hi;
if (root != NULL && root->_parent_classes.empty()) {
_root_classes.push_back(root);
_root_classes.push_back(root);
}
}
_root_classes_fresh = true;
@ -593,32 +601,32 @@ look_up(TypeHandle handle, TypedObject *object) const {
// Maybe we can use it to resolve the error.
handle = object->force_init_type();
if (handle._index == 0) {
// Strange.
express_cat->error()
<< "Unable to force_init_type() on unregistered TypeHandle.\n";
nassertr(false, NULL);
// Strange.
express_cat->error()
<< "Unable to force_init_type() on unregistered TypeHandle.\n";
nassertr(false, NULL);
}
if (handle == object->get_type()) {
// Problem solved!
express_cat->warning()
<< "Type " << handle << " was unregistered!\n";
// Problem solved!
express_cat->warning()
<< "Type " << handle << " was unregistered!\n";
} else {
// No good; it looks like the TypeHandle belongs to a class
// that defined get_type(), but didn't define
// force_init_type().
express_cat->error()
<< "Attempt to reference unregistered TypeHandle. Type is of some\n"
<< "class derived from " << handle << " that doesn't define a good\n"
<< "force_init_type() method.\n";
nassertr(false, NULL);
// No good; it looks like the TypeHandle belongs to a class
// that defined get_type(), but didn't define
// force_init_type().
express_cat->error()
<< "Attempt to reference unregistered TypeHandle. Type is of some\n"
<< "class derived from " << handle << " that doesn't define a good\n"
<< "force_init_type() method.\n";
nassertr(false, NULL);
}
} else {
// We don't have a TypedObject pointer, so there's nothing we
// can do about it.
express_cat->error()
<< "Attempt to reference unregistered TypeHandle!\n"
<< "Registered TypeHandles are:\n";
<< "Attempt to reference unregistered TypeHandle!\n"
<< "Registered TypeHandles are:\n";
write(express_cat->error(false));
nassertr(false, NULL);
}

View File

@ -42,19 +42,23 @@ register_button(ButtonHandle &button_handle, const string &name,
int index = -1;
if (ascii_equivalent != '\0') {
if (_handle_registry[ascii_equivalent] == (RegistryNode *)NULL) {
index = ascii_equivalent;
index = ascii_equivalent;
} else {
util_cat->error()
<< "Attempt to register multiple buttons under ASCII equivalent "
<< ascii_equivalent << "\n";
util_cat->error()
<< "Attempt to register multiple buttons under ASCII equivalent "
<< ascii_equivalent << "\n";
}
}
if (util_cat.is_spam()) {
#ifdef NOTIFY_DEBUG
// This code runs at static init time, so cannot use the
// util_cat.is_spam() syntax.
if (util_cat->is_spam()) {
util_cat->spam()
<< "Registering button " << name << "\n";
<< "Registering button " << name << "\n";
}
#endif
if (index == -1) {
// It's not an ASCII equivalent; make up a new number.
index = _handle_registry.size();