From c9745c8a8e0a7e1162f8626f8a78dc7c4141d07e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Mon, 9 Jul 2001 14:50:18 +0200
Subject: [PATCH] The fcode_to_opcode array is now indexed by (fcode-F_OFFSET).

Rev: src/interpreter.h:1.63
Rev: src/peep.c:1.52
---
 src/interpreter.h | 6 ++++--
 src/peep.c        | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/interpreter.h b/src/interpreter.h
index 6b2cd7db75..71e784a0af 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -354,6 +354,8 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
   strap = &&normal_strap;
   {
     static void *table[] = {
+      NULL_LABEL(F_OFFSET),
+
       NULL_LABEL(F_PREFIX_256),
       NULL_LABEL(F_PREFIX_512),
       NULL_LABEL(F_PREFIX_768),
@@ -385,10 +387,10 @@ static int eval_instruction(PIKE_OPCODE_T *pc)
     };
 
 #ifdef PIKE_DEBUG
-    if (sizeof(table) != (F_MAX_OPCODE-(F_OFFSET+1))*sizeof(void *))
+    if (sizeof(table) != (F_MAX_OPCODE-F_OFFSET)*sizeof(void *))
       fatal("opcode_to_label out of sync: 0x%08lx != 0x%08lx\n",
 	    DO_NOT_WARN((long)sizeof(table)),
-	    DO_NOT_WARN((long)((F_MAX_OPCODE-(F_OFFSET+1))*sizeof(void *))));
+	    DO_NOT_WARN((long)((F_MAX_OPCODE-F_OFFSET)*sizeof(void *))));
 #endif /* PIKE_DEBUG */
     fcode_to_opcode = table;
     return 0;
diff --git a/src/peep.c b/src/peep.c
index ce9f609f11..767ea3f7fe 100644
--- a/src/peep.c
+++ b/src/peep.c
@@ -17,7 +17,7 @@
 #include "builtin_functions.h"
 #include "constants.h"
 
-RCSID("$Id: peep.c,v 1.51 2001/07/08 21:02:41 grubba Exp $");
+RCSID("$Id: peep.c,v 1.52 2001/07/09 12:50:18 grubba Exp $");
 
 static void asm_opt(void);
 
@@ -148,7 +148,7 @@ void ins_f_byte(unsigned int b)
     Pike_error("Instruction too big %d\n",b);
 #endif
 #ifdef HAVE_COMPUTED_GOTO
-  add_to_program(fcode_to_opcode[b-1]);
+  add_to_program(fcode_to_opcode[b]);
 #else /* !HAVE_COMPUTED_GOTO */
   add_to_program((unsigned char)b);
 #endif /* HAVE_COMPUTED_GOTO */
-- 
GitLab