diff options
author | Christopher Faylor <me@cgf.cx> | 2009-06-08 03:53:40 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2009-06-08 03:53:40 +0000 |
commit | 71f53a2f6254e4f47891cd58ab562220547d01a2 (patch) | |
tree | 871e046c427914f0adc28b6d42e02a8caebc3243 /winsup/cygwin/dcrt0.cc | |
parent | 1866410bb88b2d2733185e2a9aaaf48bd5134dd1 (diff) | |
download | cygnal-71f53a2f6254e4f47891cd58ab562220547d01a2.tar.gz cygnal-71f53a2f6254e4f47891cd58ab562220547d01a2.tar.bz2 cygnal-71f53a2f6254e4f47891cd58ab562220547d01a2.zip |
* cygheap.h (mini_cygheap): New struct.
(init_cygheap): Inherit locale field via mini_cygheap.
* cygheap.cc (cygheap_at_start): Define new variable.
(cygheap): Initialize as cygheap_at_start so that locale information is always
available.
(cygheap_init): Initialize cygheap iff it is set to cygheap_at_start.
* shared_info.h (memory_init): Accommodate argument change.
* memory.cc (memory_init): Accept an argument indicating whether cygheap should
be initialized or not.
* dcrt0.cc (child_info_fork::handle_fork): Pass false to memory_init().
(child_info_spawn::handle_spawn): Ditto.
(dll_crt0_0): Pass true to memory_init when not forking or execing.
* cygheap.h (cygheap_types::HEAP_2_DLL): New enum.
* dll_init.h (dll): Remove unused namelen field.
(dll_list::load_after_fork): Accommodate change in arguments.
* dll_init.cc (dll_list::alloc): Allocate dll information in the cygwin heap.
(dll_list::detach): Free dll information from the cygwin heap.
(dll_list::load_after_fork): Use dll information in the cygwin heap directly
rather than querying parent.
* fork.cc (frok::first_dll): Delete.
(frok::child): Don't report on first_dll. Don't pass it to load_on_fork.
(frok::parent): Don't set first_dll.
(fork): Ditto.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 3088b5020..f31bf937f 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -571,7 +571,7 @@ void child_info_fork::handle_fork () { cygheap_fixup_in_child (false); - memory_init (); + memory_init (false); myself.thisproc (NULL); myself->uid = cygheap->user.real_uid; myself->gid = cygheap->user.real_gid; @@ -598,7 +598,7 @@ child_info_spawn::handle_spawn () extern void fixup_lockf_after_exec (); HANDLE h; cygheap_fixup_in_child (true); - memory_init (); + memory_init (false); if (!moreinfo->myself_pinfo || !DuplicateHandle (hMainProc, moreinfo->myself_pinfo, hMainProc, &h, 0, FALSE, DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE)) @@ -702,7 +702,7 @@ dll_crt0_0 () child_proc_info = get_cygwin_startup_info (); if (!child_proc_info) - memory_init (); + memory_init (true); else { cygwin_user_h = child_proc_info->user_h; |