From 6e21a56cde92395228ddc439525081c96441fc75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Wed, 9 Aug 2000 14:49:28 +0200
Subject: [PATCH] refs is now an INT32 again.

Rev: src/array.h:1.24
Rev: src/constants.h:1.13
Rev: src/gc.h:1.59
Rev: src/interpret.h:1.63
Rev: src/mapping.h:1.30
Rev: src/multiset.h:1.15
Rev: src/object.h:1.52
Rev: src/pike_types.h:1.41
Rev: src/program.h:1.99
Rev: src/stralloc.h:1.48
---
 src/array.h      |  4 ++--
 src/constants.h  |  4 ++--
 src/gc.h         | 10 ++++----
 src/interpret.h  |  4 ++--
 src/mapping.h    |  6 ++---
 src/multiset.h   |  4 ++--
 src/object.h     |  4 ++--
 src/pike_types.h | 60 ++++++++++++++++++++++++++++++++----------------
 src/program.h    |  4 ++--
 src/stralloc.h   |  4 ++--
 10 files changed, 62 insertions(+), 42 deletions(-)

diff --git a/src/array.h b/src/array.h
index fa5e614b4c..a0c160f49c 100644
--- a/src/array.h
+++ b/src/array.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: array.h,v 1.23 2000/08/03 17:55:50 grubba Exp $
+ * $Id: array.h,v 1.24 2000/08/09 12:49:27 grubba Exp $
  */
 #ifndef ARRAY_H
 #define ARRAY_H
@@ -14,7 +14,7 @@
 
 struct array
 {
-  ptrdiff_t refs;		/* Reference count */
+  INT32 refs;		/* Reference count */
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/constants.h b/src/constants.h
index 17c606d653..5ce7af2ac5 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: constants.h,v 1.12 2000/08/03 17:55:50 grubba Exp $
+ * $Id: constants.h,v 1.13 2000/08/09 12:49:27 grubba Exp $
  */
 #ifndef ADD_EFUN_H
 #define ADD_EFUN_H
@@ -20,7 +20,7 @@ typedef node *(*optimize_fun)(node *n);
 
 struct callable
 {
-  ptrdiff_t refs;
+  INT32 refs;
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/gc.h b/src/gc.h
index 8fc7e4f53b..c56bab4559 100644
--- a/src/gc.h
+++ b/src/gc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: gc.h,v 1.58 2000/08/03 17:55:50 grubba Exp $
+ * $Id: gc.h,v 1.59 2000/08/09 12:49:27 grubba Exp $
  */
 #ifndef GC_H
 #define GC_H
@@ -68,11 +68,11 @@ struct marker
   struct marker *next;
   struct gc_frame *frame;	/* Pointer into the cycle check stack. */
   void *data;
-  ptrdiff_t refs;		/* Internal references. */
-  ptrdiff_t weak_refs;		/* Weak (implying internal) references. */
+  INT32 refs;			/* Internal references. */
+  INT32 weak_refs;		/* Weak (implying internal) references. */
 #ifdef PIKE_DEBUG
-  ptrdiff_t xrefs;		/* Known external references. */
-  ptrdiff_t saved_refs;		/* Object refcount during check pass. */
+  INT32 xrefs;			/* Known external references. */
+  INT32 saved_refs;		/* Object refcount during check pass. */
 #endif
   unsigned INT16 flags;
 };
diff --git a/src/interpret.h b/src/interpret.h
index adf3bc4c3b..48c50a58d6 100644
--- a/src/interpret.h
+++ b/src/interpret.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: interpret.h,v 1.62 2000/08/09 10:27:41 grubba Exp $
+ * $Id: interpret.h,v 1.63 2000/08/09 12:49:27 grubba Exp $
  */
 #ifndef INTERPRET_H
 #define INTERPRET_H
@@ -47,7 +47,7 @@ struct Pike_interpreter {
 #endif
 struct pike_frame
 {
-  ptrdiff_t refs; /* must be first */
+  INT32 refs; /* must be first */
   INT32 args;
   unsigned INT16 fun;
   INT16 num_locals;
diff --git a/src/mapping.h b/src/mapping.h
index 023b7df019..a148d51e70 100644
--- a/src/mapping.h
+++ b/src/mapping.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: mapping.h,v 1.29 2000/08/03 17:55:50 grubba Exp $
+ * $Id: mapping.h,v 1.30 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef MAPPING_H
 #define MAPPING_H
@@ -24,7 +24,7 @@ struct keypair
 
 struct mapping_data
 {
-  ptrdiff_t refs;
+  INT32 refs;
   INT32 valrefs; /* lock values too */
   INT32 hardlinks;
   INT32 size, hashsize;
@@ -37,7 +37,7 @@ struct mapping_data
 
 struct mapping
 {
-  ptrdiff_t refs;
+  INT32 refs;
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/multiset.h b/src/multiset.h
index 62f2aa63e1..0ce129a53c 100644
--- a/src/multiset.h
+++ b/src/multiset.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: multiset.h,v 1.14 2000/08/03 17:55:50 grubba Exp $
+ * $Id: multiset.h,v 1.15 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef MULTISET_H
 #define MULTISET_H
@@ -14,7 +14,7 @@
 
 struct multiset
 {
-  ptrdiff_t refs;
+  INT32 refs;
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/object.h b/src/object.h
index d403054c35..f17354f950 100644
--- a/src/object.h
+++ b/src/object.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: object.h,v 1.51 2000/08/03 17:55:50 grubba Exp $
+ * $Id: object.h,v 1.52 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef OBJECT_H
 #define OBJECT_H
@@ -20,7 +20,7 @@
 #endif
 struct object
 {
-  ptrdiff_t refs;                    /* Reference count, must be first. */
+  INT32 refs;                    /* Reference count, must be first. */
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/pike_types.h b/src/pike_types.h
index fb839b0f63..fb7a27a7c9 100644
--- a/src/pike_types.h
+++ b/src/pike_types.h
@@ -5,16 +5,39 @@
 \*/
 
 /*
- * $Id: pike_types.h,v 1.40 2000/07/29 06:31:06 hubbe Exp $
+ * $Id: pike_types.h,v 1.41 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef PIKE_TYPES_H
 #define PIKE_TYPES_H
 
 #include "svalue.h"
 
+/* Also used in struct node_identifier */
+union node_data
+{
+  struct
+  {
+    int number;
+    struct program *prog;
+  } id;
+  struct svalue sval;
+  struct
+  {
+    struct node_s *a, *b;
+  } node;
+  struct
+  {
+    struct node_identifier *a, *b;
+  } node_id;
+  struct
+  {
+    int a, b;
+  } integer;
+};
+
 struct node_s
 {
-#ifdef SHARED_NODES
+#if defined(SHARED_NODES)
   unsigned INT32 refs;
   unsigned INT32 hash;
   struct node_s *next;
@@ -30,25 +53,22 @@ struct node_s
   unsigned INT16 tree_info;
   /* The stuff from this point on is hashed. */
   unsigned INT16 token;
-  union 
-  {
-    struct
-    {
-      int number;
-      struct program *prog;
-    } id;
-    struct svalue sval;
-    struct
-    {
-      struct node_s *a,*b;
-    } node;
-    struct
-    {
-      int a,b;
-    } integer;
-  } u;
+  union node_data u;
 };
 
+#ifdef SHARED_NODES_MK2
+
+struct node_identifier
+{
+  ptrdiff_t refs;
+  struct node_identifier *next;
+  unsigned INT32 hash;
+  INT16 token;
+  union node_data u;
+};
+
+#endif /* SHARED_NODES_MK2 */
+
 #ifndef STRUCT_NODE_S_DECLARED
 #define STRUCT_NODE_S_DECLARED
 #endif
@@ -108,7 +128,7 @@ extern struct pike_string *weak_type_string;
 
 #define type_stack_mark() do {				\
   if(Pike_compiler->pike_type_mark_stackp >= pike_type_mark_stack + NELEM(pike_type_mark_stack))	\
-    yyerror("Type mark stack overflow.");		\
+    fatal("Type mark stack overflow.");		\
   else {						\
     *Pike_compiler->pike_type_mark_stackp=Pike_compiler->type_stackp;				\
     Pike_compiler->pike_type_mark_stackp++;					\
diff --git a/src/program.h b/src/program.h
index 436b5599c9..98626a51be 100644
--- a/src/program.h
+++ b/src/program.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: program.h,v 1.98 2000/08/03 17:55:50 grubba Exp $
+ * $Id: program.h,v 1.99 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef PROGRAM_H
 #define PROGRAM_H
@@ -255,7 +255,7 @@ struct pike_trampoline
 
 struct program
 {
-  ptrdiff_t refs;
+  INT32 refs;
 #ifdef PIKE_SECURITY
   struct object *prot;
 #endif
diff --git a/src/stralloc.h b/src/stralloc.h
index b908572a63..7ff8ad4192 100644
--- a/src/stralloc.h
+++ b/src/stralloc.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: stralloc.h,v 1.47 2000/08/08 19:21:55 grubba Exp $
+ * $Id: stralloc.h,v 1.48 2000/08/09 12:49:28 grubba Exp $
  */
 #ifndef STRALLOC_H
 #define STRALLOC_H
@@ -19,7 +19,7 @@
 #endif
 struct pike_string
 {
-  ptrdiff_t refs;
+  INT32 refs;
   INT32 size_shift; /* 30 bit waste, but good for alignment... */
   ptrdiff_t len;
   size_t hval;
-- 
GitLab