aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorAndreas Schwab <[email protected]>2003-01-10 20:08:54 +0000
committerAndreas Schwab <[email protected]>2003-01-10 20:08:54 +0000
commit3a8d08994a8df44a9020a25b3917e02c6da81465 (patch)
tree91bcae25a770f98bdb63f5b84d6dd5f2f924f3d0 /src/alloc.c
parentd4aeef3b961bcbfb78a388683f64a4ce971fda26 (diff)
(pure_alloc): Correct alignment for Lisp_Floats.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index b884bfabfb..47885c6753 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -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 @@ pure_alloc (size, type)
#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));