changeset 49139:e807249d08c1

(pure_alloc): Correct alignment for Lisp_Floats.
author Andreas Schwab <schwab@suse.de>
date Fri, 10 Jan 2003 20:08:32 +0000
parents f955735e16d8
children 23177b864eef
files src/alloc.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/alloc.c	Fri Jan 10 16:42:27 2003 +0000
+++ b/src/alloc.c	Fri Jan 10 20:08:32 2003 +0000
@@ -1,5 +1,5 @@
 /* Storage allocation and gc for GNU Emacs Lisp interpreter.
-   Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001, 2002
+   Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001, 2002, 2003
       Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -3844,7 +3844,12 @@
 #else
       alignment = sizeof (struct Lisp_Float);
 #endif
-      pure_bytes_used = ALIGN (pure_bytes_used, alignment);
+      /* Make sure beg + pure_bytes_used is correctly aligned for a
+	 Lisp_Float, which might need stricter alignment than
+	 EMACS_INT.  */
+      pure_bytes_used
+	= (ALIGN ((EMACS_UINT) (beg + pure_bytes_used), alignment)
+	   - (EMACS_UINT) beg);
     }
     
   nbytes = ALIGN (size, sizeof (EMACS_INT));