*******************************************************************************/
-static void build_display(classinfo *c)
+static classinfo *build_display(classinfo *c)
{
int depth, i;
int depth_fixed;
super = c->super;
} while (false);
if (super) {
- build_display(super);
+ if (!link_class(super))
+ return NULL;
depth = super->vftbl->subtype_depth + 1;
} else
/* java.lang.Object doesn't have a super class. */
c->vftbl->subtype_display[i] = NULL;
c->vftbl->subtype_offset = OFFSET(vftbl_t, subtype_display[0]) + sizeof(vftbl_t*) * depth_fixed;
c->vftbl->subtype_depth = depth;
+
+ return c;
}
#endif
RT_TIMING_GET_TIME(time_subclasses);
#if USES_NEW_SUBTYPE
- build_display(c);
+ if (!build_display(c))
+ return NULL;
#endif
/* revert the linking state and class is linked */