- {
- HV *stash = gv_stashsv(pkg, 0);
-
- if (stash) {
- HE *he = hv_fetch_ent(stash, name, 0, 0);
-
- if (he) {
- CV *cv;
- SV *gv = HeVAL(he);
- hash = HeHASH(he);
-
- if (gv && SvTYPE(gv) >= SVt_PVGV && (cv = GvCV(gv)) == MY_CXT.placeholder){
- SvREFCNT_dec(cv);
- GvCV(gv) = NULL;
- if (!GvSV(gv) && !GvAV(gv) && !GvHV(gv) && !GvIO(gv) && !GvFORM(gv))
- (void) hv_delete_ent(stash, name, G_DISCARD, hash);
- }
- }
- }
- }
+ ex_list = cUNOPo->op_first;
+ /* pushmark when a method call */
+ if (!ex_list || ex_list->op_type != OP_NULL)
+ goto skip;