static char *
allocate_heap (void)
{
- /* The base address for our GNU malloc heap is chosen in conjuction
+ /* The base address for our GNU malloc heap is chosen in conjunction
with the link settings for temacs.exe which control the stack size,
the initial default process heap size and the executable image base
address. The link settings and the malloc heap base below must all
still a pretty decent arena to play in! */
unsigned long base = 0x01B00000; /* 27MB */
- unsigned long end = 1 << VALBITS; /* 256MB */
+ /* Temporary hack for the non-starting problem - use 28 (256Mb) rather than VALBITS (1Gb) */
+ unsigned long end = 1 << 28; /* 256MB */
void *ptr = NULL;
#define NTHEAP_PROBE_BASE 1
if (!data_region_base)
return NULL;
-#ifndef USE_MINIMAL_TAGBITS
- /* Ensure that the addresses don't use the upper tag bits since
- the Lisp type goes there. */
-#ifdef USE_UNION_TYPE
- if (((unsigned long) data_region_base & ~((1U << VALBITS) - 1)) != 0)
-#else
- if (((unsigned long) data_region_base & ~VALMASK) != 0)
-#endif
- {
- printf ("Error: The heap was allocated in upper memory.\n");
- exit (1);
- }
-#endif
-
data_region_end = data_region_base;
real_data_region_end = data_region_end;
data_region_size = get_reserved_heap_size ();
return result;
}
-#ifndef CANNOT_DUMP
+#if !defined (CANNOT_DUMP) && !defined(HEAP_IN_DATA)
/* Recreate the heap from the data that was dumped to the executable.
EXECUTABLE_PATH tells us where to find the executable. */