vframeOop create_vframeOop(oop method) { if (++createdVFrameProtos > 3) ShouldNotReachHere(); // should create only three vframe prototypes vframeMap *vf; switch (method->kind()) { case OuterMethodType: { ovframeMap m; vf= &m; break; } case BlockMethodType: { bvframeMap m; vf= &m; break; } default: ShouldNotReachHere(); } assert(sizeof(vframeMap) == sizeof(bvframeMap) && sizeof(vframeMap) == sizeof(ovframeMap), "should be the same"); vframeOop p; vframeMap* m = (vframeMap*)create_map(sizeof(vframeMap), NULL, vf, (oop*)&p); p->set_next(NULL); p->set_method(method); p->set_locals(NULL); p->set_process(NULL); p->set_descOffset(0); return p; }