* cygheap.cc (cygheap_init): Born again function.
(_cmalloc): Reorganize to accomodate muto locking. (_cfree): Use muto lock to avoid multi-thread problems. * cygheap.h (incygheap): Just use cygheap_max to find upper cygwin heap bounds. * dcrt0.cc (dll_crt0_1): Reinstitute cygheap_init call. * path.cc (getcwd): Just return cwdstuff::get result, allowing correct handling of negative length. (cwdstuff::get): Malloc a buffer if one is not available.
This commit is contained in:
@@ -29,7 +29,7 @@ enum cygheap_types
|
||||
extern HANDLE cygheap;
|
||||
extern HANDLE cygheap_max;
|
||||
|
||||
#define incygheap(s) (cygheap && ((char *) (s) >= (char *) cygheap) && ((char *) (s) <= ((char *) cygheap) + CYGHEAPSIZE))
|
||||
#define incygheap(s) (cygheap && ((char *) (s) >= (char *) cygheap) && ((char *) (s) <= ((char *) cygheap_max)))
|
||||
|
||||
extern "C" {
|
||||
void __stdcall cfree (void *);
|
||||
@@ -39,4 +39,5 @@ void *__stdcall crealloc (void *, DWORD);
|
||||
void *__stdcall ccalloc (cygheap_types, DWORD, DWORD);
|
||||
char *__stdcall cstrdup (const char *);
|
||||
char *__stdcall cstrdup1 (const char *);
|
||||
void __stdcall cygheap_init ();
|
||||
}
|
||||
|
Reference in New Issue
Block a user