[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/igc b49bb7f2c6d 6/8: mirror_vectorlike
From: |
Gerd Moellmann |
Subject: |
scratch/igc b49bb7f2c6d 6/8: mirror_vectorlike |
Date: |
Fri, 17 May 2024 10:03:26 -0400 (EDT) |
branch: scratch/igc
commit b49bb7f2c6d4211b1d0408956c65f31ac8eb902e
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>
mirror_vectorlike
---
src/igc.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/igc.c b/src/igc.c
index 7ad3b78688c..cf78f954c7f 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -3548,7 +3548,16 @@ mirror_raw (struct igc_mirror *m, mps_addr_t *p)
}
#define IGC_MIRROR_OBJ(m, obj) mirror_lisp_obj ((m), (obj))
-#define IGC_MIRROR_RAW(m, pp) mirror_raw ((m), (mps_addr_t *) (pp))
+#define IGC_MIRROR_RAW(m, pp) mirror_raw ((m), (mps_addr_t *) (pp))
+
+static void
+mirror_array (struct igc_mirror *m, Lisp_Object *array, size_t n)
+{
+ for (size_t i = 0; i < n; ++i)
+ IGC_MIRROR_OBJ (m, &array[i]);
+}
+
+#define IGC_MIRROR_NOBJS(m, a, n) mirror_array (m, a, n)
static void
copy_to_mps (void *dumped, void *closure)
@@ -3630,12 +3639,6 @@ mirror_string (struct igc_mirror *m, struct Lisp_String
*s)
IGC_MIRROR_RAW (m, &s->u.s.intervals);
}
-static void
-mirror_float (struct igc_mirror *m, struct Lisp_Float *f)
-{
- igc_assert (pdumper_cold_object_p (f));
-}
-
static void
mirror_interval (struct igc_mirror *m, struct interval *iv)
{
@@ -3720,7 +3723,10 @@ mirror_blv (struct igc_mirror *m, struct
Lisp_Buffer_Local_Value *blv)
static void
mirror_vectorlike (struct igc_mirror *m, struct Lisp_Vector *v)
{
- emacs_abort ();
+ ptrdiff_t size = v->header.size;
+ if (size & PSEUDOVECTOR_FLAG)
+ size &= PSEUDOVECTOR_SIZE_MASK;
+ IGC_MIRROR_NOBJS (m, v->contents, size);
}
#ifndef IN_MY_FORK
@@ -4017,10 +4023,7 @@ mirror_obj (struct igc_mirror *m, void *base)
break;
case IGC_OBJ_STRING_DATA:
- break;
-
case IGC_OBJ_FLOAT:
- mirror_float (m, client);
break;
case IGC_OBJ_SYMBOL:
- scratch/igc updated (c652522da7a -> 514538d1435), Gerd Moellmann, 2024/05/17
- scratch/igc 4692ab5aa65 1/8: mirror_symbol, Gerd Moellmann, 2024/05/17
- scratch/igc b5df3588674 3/8: mirror_interval, Gerd Moellmann, 2024/05/17
- scratch/igc 36598472e6e 7/8: mirror_obarray, Gerd Moellmann, 2024/05/17
- scratch/igc 83068ff5de8 2/8: mirror_cons, Gerd Moellmann, 2024/05/17
- scratch/igc 4265159407c 5/8: mirror_blv, Gerd Moellmann, 2024/05/17
- scratch/igc 0d648b95461 4/8: mirror_string, Gerd Moellmann, 2024/05/17
- scratch/igc 514538d1435 8/8: Fix compilation error in GNU, Gerd Moellmann, 2024/05/17
- scratch/igc b49bb7f2c6d 6/8: mirror_vectorlike,
Gerd Moellmann <=