* dcrt0.cc (dll_crt0_0): Use proper boolean arguments.
* pinfo.cc (pinfo::init): Don't consider MapViewOfFileEx error to be fatal if exiting. * pinfo.h (pinfo::init): Eliminate default argument and supply the argument in the one case that needed it.
This commit is contained in:
parent
8c2defa46c
commit
634d51d94e
@ -1,3 +1,11 @@
|
|||||||
|
2004-07-24 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
* dcrt0.cc (dll_crt0_0): Use proper boolean arguments.
|
||||||
|
* pinfo.cc (pinfo::init): Don't consider MapViewOfFileEx error to be
|
||||||
|
fatal if exiting.
|
||||||
|
* pinfo.h (pinfo::init): Eliminate default argument and supply the
|
||||||
|
argument in the one case that needed it.
|
||||||
|
|
||||||
2004-07-24 Corinna Vinschen <corinna@vinschen.de>
|
2004-07-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
Christopher Faylor <cgf@timesys.com>
|
Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
@ -665,7 +665,7 @@ dll_crt0_0 ()
|
|||||||
{
|
{
|
||||||
case _PROC_FORK:
|
case _PROC_FORK:
|
||||||
alloc_stack (fork_info);
|
alloc_stack (fork_info);
|
||||||
cygheap_fixup_in_child (0);
|
cygheap_fixup_in_child (false);
|
||||||
memory_init ();
|
memory_init ();
|
||||||
set_myself (mypid);
|
set_myself (mypid);
|
||||||
close_ppid_handle = !!child_proc_info->pppid_handle;
|
close_ppid_handle = !!child_proc_info->pppid_handle;
|
||||||
@ -679,11 +679,11 @@ dll_crt0_0 ()
|
|||||||
hexec_proc = spawn_info->hexec_proc;
|
hexec_proc = spawn_info->hexec_proc;
|
||||||
around:
|
around:
|
||||||
HANDLE h;
|
HANDLE h;
|
||||||
cygheap_fixup_in_child (1);
|
cygheap_fixup_in_child (true);
|
||||||
memory_init ();
|
memory_init ();
|
||||||
if (!spawn_info->moreinfo->myself_pinfo ||
|
if (!spawn_info->moreinfo->myself_pinfo ||
|
||||||
!DuplicateHandle (hMainProc, spawn_info->moreinfo->myself_pinfo,
|
!DuplicateHandle (hMainProc, spawn_info->moreinfo->myself_pinfo,
|
||||||
hMainProc, &h, 0, 0,
|
hMainProc, &h, 0, FALSE,
|
||||||
DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
|
DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
|
||||||
h = NULL;
|
h = NULL;
|
||||||
set_myself (mypid, h);
|
set_myself (mypid, h);
|
||||||
|
@ -193,8 +193,25 @@ pinfo::init (pid_t n, DWORD flag, HANDLE in_h)
|
|||||||
}
|
}
|
||||||
|
|
||||||
procinfo = (_pinfo *) MapViewOfFileEx (h, access, 0, 0, 0, mapaddr);
|
procinfo = (_pinfo *) MapViewOfFileEx (h, access, 0, 0, 0, mapaddr);
|
||||||
if (!procinfo)
|
if (procinfo)
|
||||||
api_fatal ("MapViewOfFileEx(%p) failed, %E", h);
|
/* it worked */;
|
||||||
|
else if (exit_state)
|
||||||
|
return; /* exiting */
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (GetLastError () == ERROR_INVALID_HANDLE)
|
||||||
|
api_fatal ("MapViewOfFileEx(%p, in_h %p) failed, %E", h, in_h);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
debug_printf ("MapViewOfFileEx(%p, in_h %p) failed, %E", h, in_h);
|
||||||
|
CloseHandle (h);
|
||||||
|
}
|
||||||
|
if (i < 9)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ProtectHandle1 (h, pinfo_shared_handle);
|
ProtectHandle1 (h, pinfo_shared_handle);
|
||||||
|
|
||||||
if ((procinfo->process_state & PID_INITIALIZING) && (flag & PID_NOREDIR)
|
if ((procinfo->process_state & PID_INITIALIZING) && (flag & PID_NOREDIR)
|
||||||
|
@ -129,11 +129,11 @@ class pinfo
|
|||||||
_pinfo *procinfo;
|
_pinfo *procinfo;
|
||||||
bool destroy;
|
bool destroy;
|
||||||
public:
|
public:
|
||||||
void init (pid_t n, DWORD create = 0, HANDLE h = NULL) __attribute__ ((regparm(3)));
|
void init (pid_t, DWORD, HANDLE = NULL) __attribute__ ((regparm(3)));
|
||||||
pinfo () {}
|
pinfo () {}
|
||||||
pinfo (_pinfo *x): procinfo (x) {}
|
pinfo (_pinfo *x): procinfo (x) {}
|
||||||
pinfo (pid_t n) {init (n);}
|
pinfo (pid_t n) {init (n, 0);}
|
||||||
pinfo (pid_t n, int create) {init (n, create);}
|
pinfo (pid_t n, DWORD flag) {init (n, flag);}
|
||||||
void release ();
|
void release ();
|
||||||
~pinfo ()
|
~pinfo ()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user