make sure a class' super class gets referenced when the class is implemented

to ensure the super class' object file gets linked in when it's in a library
This commit is contained in:
Bill Currie 2002-08-14 03:55:23 +00:00
parent fabaf84745
commit 09ce2b0662
2 changed files with 4 additions and 3 deletions

View File

@ -215,8 +215,10 @@ class_begin (class_t *class)
class->def->initialized = class->def->constant = 1; class->def->initialized = class->def->constant = 1;
cls = &G_STRUCT (pr_class_t, class->def->ofs); cls = &G_STRUCT (pr_class_t, class->def->ofs);
EMIT_DEF (cls->class_pointer, meta_def); EMIT_DEF (cls->class_pointer, meta_def);
if (class->super_class) if (class->super_class) {
EMIT_STRING (cls->super_class, class->super_class->class_name); EMIT_STRING (cls->super_class, class->super_class->class_name);
class_def (class->super_class, 1);
}
EMIT_STRING (cls->name, class->class_name); EMIT_STRING (cls->name, class->class_name);
cls->info = _PR_CLS_CLASS; cls->info = _PR_CLS_CLASS;
cls->protocols = meta->protocols; cls->protocols = meta->protocols;

View File

@ -191,8 +191,7 @@ process_def (qfo_def_t *def)
def->flags = d->flags; def->flags = d->flags;
Hash_Add (defined_defs, def); Hash_Add (defined_defs, def);
} else { } else {
if (def->num_relocs) Hash_Add (extern_defs, def);
Hash_Add (extern_defs, def);
} }
} else { } else {
if (def->flags & QFOD_GLOBAL) { if (def->flags & QFOD_GLOBAL) {