Allow base destructors to run and fix some error reporting.

This commit is contained in:
David Anderson
2014-06-21 12:27:04 -07:00
parent 63ad5eff18
commit 861953d736
6 changed files with 434 additions and 397 deletions
+13 -2
View File
@@ -3434,7 +3434,7 @@ methodmap_method_t *parse_method(methodmap_t *map)
if (is_bind) {
target = findglb(bindname, sGLOBAL);
if (!target)
error(17, ident);
error(17, bindname);
else if (target->ident != iFUNCTN)
error(10);
} else {
@@ -3645,7 +3645,18 @@ static void dodelete()
return;
}
if (!map->dtor) {
{
methodmap_t *iter = map;
while (iter) {
if (iter->dtor) {
map = iter;
break;
}
iter = iter->parent;
}
}
if (!map || !map->dtor) {
error(115, layout_spec_name(map->spec), map->name);
return;
}