Remove some dead code in indirect_ck_method
authorVincent Pit <vince@profvince.com>
Thu, 19 Aug 2010 15:19:38 +0000 (17:19 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 19 Aug 2010 15:19:38 +0000 (17:19 +0200)
We already check that the first kid of the method op is a const op. Thus
it must have been checked before. Otherwise, someone has returned a const
op from a custom check function and haven't recalled in the old check
chain, which is bad and ultimately their fault.

indirect.xs

index ba9c503..d21b29e 100644 (file)
@@ -647,22 +647,14 @@ STATIC OP *indirect_ck_method(pTHX_ OP *o) {
    line_t line;
    SV *sv;
 
-   if (oi) {
-    sv   = sv_2mortal(newSVpvn(oi->buf, oi->len));
-    pos  = oi->pos;
-    /* Keep the old line so that we really point to the first line of the
-     * expression. */
-    line = oi->line;
-   } else {
-    sv = cSVOPx_sv(op);
-    if (!SvPOK(sv) || (SvTYPE(sv) < SVt_PV))
-     goto done;
-    sv = sv_mortalcopy(sv);
+   if (!oi)
+    goto done;
 
-    if (!indirect_find(sv, PL_oldbufptr, &pos))
-     goto done;
-    line = CopLINE(&PL_compiling);
-   }
+   sv   = sv_2mortal(newSVpvn(oi->buf, oi->len));
+   pos  = oi->pos;
+   /* Keep the old line so that we really point to the first line of the
+    * expression. */
+   line = oi->line;
 
    o = CALL_FPTR(indirect_old_ck_method)(aTHX_ o);
    /* o may now be a method_named */