* cygheap.h (init_cygheap): Move heap pointers here.
* include/sys/cygwin.h (perprocess): Remove heap pointers. * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff. (_dll_crt0): Don't initialize heap pointers. (cygwin_dll_init): Ditto. (release_upto): Use heap pointers from cygheap. * heap.h: Ditto. * fork.cc (fork_parent): Ditto. Don't set heap pointers in ch. (fork_child): Remove obsolete sigproc_fixup_after_fork. * shared.cc (memory_init): Reorganize so that cygheap initialization is called prior to regular heap since regular heap uses cygheap now. * sigproc.cc (proc_subproc): Eliminate zombies allocation. (sigproc_init): Move zombies alloation here. Don't free up array on fork, just reuse it. (sigproc_fixup_after_fork): Eliminate. * sigproc.h: Ditto. * include/cygwin/version.h: Reflect change to perprocess structure.
This commit is contained in:
@@ -101,9 +101,9 @@ extern "C"
|
||||
/* calloc */ export_calloc,
|
||||
/* premain */ {NULL, NULL, NULL, NULL},
|
||||
/* run_ctors_p */ 0,
|
||||
/* unused */ { 0, 0, 0},
|
||||
/* heapbase */ NULL, /* heapptr */ NULL, /* heaptop */ NULL,
|
||||
/* unused1 */ 0, /* forkee */ 0, /* hmodule */ NULL,
|
||||
/* unused */ {0, 0, 0, 0, 0, 0, 0},
|
||||
/* forkee */ 0,
|
||||
/* hmodule */ NULL,
|
||||
/* api_major */ CYGWIN_VERSION_API_MAJOR,
|
||||
/* api_minor */ CYGWIN_VERSION_API_MINOR,
|
||||
/* unused2 */ {0, 0, 0, 0, 0},
|
||||
@@ -683,9 +683,6 @@ dll_crt0_1 ()
|
||||
cygheap_fixup_in_child (child_proc_info, 0);
|
||||
alloc_stack (fork_info);
|
||||
set_myself (mypid);
|
||||
user_data->heaptop = child_proc_info->heaptop;
|
||||
user_data->heapbase = child_proc_info->heapbase;
|
||||
user_data->heapptr = child_proc_info->heapptr;
|
||||
ProtectHandle (child_proc_info->forker_finished);
|
||||
break;
|
||||
case PROC_SPAWN:
|
||||
@@ -896,7 +893,6 @@ _dll_crt0 ()
|
||||
|
||||
main_environ = user_data->envptr;
|
||||
*main_environ = NULL;
|
||||
user_data->heapbase = user_data->heapptr = user_data->heaptop = NULL;
|
||||
|
||||
set_console_handler ();
|
||||
if (!DuplicateHandle (GetCurrentProcess (), GetCurrentProcess (),
|
||||
@@ -954,7 +950,6 @@ cygwin_dll_init ()
|
||||
{
|
||||
static char **envp;
|
||||
static int _fmode;
|
||||
user_data->heapbase = user_data->heapptr = user_data->heaptop = NULL;
|
||||
|
||||
if (!DuplicateHandle (GetCurrentProcess (), GetCurrentProcess (),
|
||||
GetCurrentProcess (), &hMainProc, 0, FALSE,
|
||||
|
Reference in New Issue
Block a user