fix bugs in the handling of negative numbers, among other things
[p5sagit/p5-mst-13.2.git] / op.c
diff --git a/op.c b/op.c
index 412eb57..51df803 100644 (file)
--- a/op.c
+++ b/op.c
@@ -541,7 +541,7 @@ pad_reset(void)
 #ifdef USE_THREADS
 /* find_threadsv is not reentrant */
 PADOFFSET
-find_threadsv(char *name)
+find_threadsv(const char *name)
 {
     dTHR;
     char *p;
@@ -1250,6 +1250,8 @@ mod(OP *o, I32 type)
     case OP_AV2ARYLEN:
        PL_hints |= HINT_BLOCK_SCOPE;
     case OP_SASSIGN:
+    case OP_ANDASSIGN:
+    case OP_ORASSIGN:
     case OP_AELEMFAST:
        PL_modcount++;
        break;
@@ -1380,8 +1382,8 @@ scalar_mod_type(OP *o, I32 type)
     case OP_READ:
     case OP_SYSREAD:
     case OP_RECV:
-    case OP_ANDASSIGN: /* may work later */
-    case OP_ORASSIGN:  /* may work later */
+    case OP_ANDASSIGN:
+    case OP_ORASSIGN:
        return TRUE;
     default:
        return FALSE;
@@ -1399,6 +1401,7 @@ is_handle_constructor(OP *o, I32 argnum)
        /* FALL THROUGH */
     case OP_SYSOPEN:
     case OP_OPEN:
+    case OP_SELECT:            /* XXX c.f. SelectSaver.pm */
     case OP_SOCKET:
     case OP_OPEN_DIR:
     case OP_ACCEPT: