[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/alloc.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/alloc.c |
Date: |
Sun, 12 Jan 2003 10:36:41 -0500 |
Index: emacs/src/alloc.c
diff -c emacs/src/alloc.c:1.286 emacs/src/alloc.c:1.287
*** emacs/src/alloc.c:1.286 Sat Jan 11 19:40:09 2003
--- emacs/src/alloc.c Sun Jan 12 10:36:40 2003
***************
*** 3831,3876 ****
size_t size;
int type;
{
- size_t nbytes;
POINTER_TYPE *result;
! char *beg;
!
! again:
! beg = purebeg;
! result = (POINTER_TYPE *) (beg + pure_bytes_used);
! nbytes = ALIGN (size, sizeof (EMACS_INT));
/* Give Lisp_Floats an extra alignment. */
if (type == Lisp_Float)
{
- POINTER_TYPE *orig = result;
- size_t alignment;
#if defined __GNUC__ && __GNUC__ >= 2
alignment = __alignof (struct Lisp_Float);
#else
alignment = sizeof (struct Lisp_Float);
#endif
- /* Make sure result is correctly aligned for a
- Lisp_Float, which might need stricter alignment than
- EMACS_INT. */
- result = (POINTER_TYPE *)ALIGN((EMACS_UINT)result, alignment);
- nbytes += (char *)result - (char *)orig;
- }
-
- if (pure_bytes_used + nbytes > pure_size)
- {
- /* Don't allocate a large amount here,
- because it might get mmap'd and then its address
- might not be usable. */
- purebeg = (char *) xmalloc (10000);
- pure_size = 10000;
- pure_bytes_used_before_overflow += pure_bytes_used;
- pure_bytes_used = 0;
- goto again;
}
! pure_bytes_used += nbytes;
! return result;
}
--- 3831,3864 ----
size_t size;
int type;
{
POINTER_TYPE *result;
! size_t alignment = sizeof (EMACS_INT);
/* Give Lisp_Floats an extra alignment. */
if (type == Lisp_Float)
{
#if defined __GNUC__ && __GNUC__ >= 2
alignment = __alignof (struct Lisp_Float);
#else
alignment = sizeof (struct Lisp_Float);
#endif
}
! again:
! result = (POINTER_TYPE *) ALIGN ((EMACS_UINT)purebeg + pure_bytes_used,
alignment);
! pure_bytes_used = ((char *)result - (char *)purebeg) + size;
!
! if (pure_bytes_used <= pure_size)
! return result;
!
! /* Don't allocate a large amount here,
! because it might get mmap'd and then its address
! might not be usable. */
! purebeg = (char *) xmalloc (10000);
! pure_size = 10000;
! pure_bytes_used_before_overflow += pure_bytes_used - size;
! pure_bytes_used = 0;
! goto again;
}