From c4992dba355e7c3f50bbc382ae1b587ba4346dfa Mon Sep 17 00:00:00 2001
From: sof <unknown>
Date: Mon, 25 Aug 1997 21:02:41 +0000
Subject: [PATCH] [project @ 1997-08-25 21:02:41 by sof] Offset of data field
 within ForeignObj made constant across different GC schemes

---
 ghc/includes/SMClosures.lh | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/ghc/includes/SMClosures.lh b/ghc/includes/SMClosures.lh
index 37b642ded563..fae88f11947a 100644
--- a/ghc/includes/SMClosures.lh
+++ b/ghc/includes/SMClosures.lh
@@ -532,14 +532,29 @@ we can't traverse the list of all ForeignObjs.)
 The @FreeRoutine@ is a reference to the finalisation routine to call
 when the @ForeignObj@ becomes garbage -- SOF 4/96
 
+[8/97 -- from the p.o.v. of the NCG, it is very convenient if
+the offset to the data field is constant and not dependent on
+what scheme of GC being used by the RTS. So much so, that I'm
+uniformly adding a VHS of 1. For schemes using a copying
+collector, that's the forward field. For the one-space collector,
+it's an unused word. 
+
+If the change is reverted back to what it was (conditional on
+the setting of _INFO_COPYING), then MachMisc.foHS
+needs to be changed accordingly.		-- SOF]
+
 \begin{code}
 #if !defined(PAR)
 
+/* See comment above */
+#  define ForeignObj_VHS			1
+/*
 # if defined(_INFO_COPYING)
 #  define ForeignObj_VHS			1
 # else
 #  define ForeignObj_VHS			0
 # endif
+*/
 
 # define ForeignObj_HS			(FIXED_HS + ForeignObj_VHS)
 # define ForeignObj_SIZE		(ForeignObj_VHS + 3)
-- 
GitLab