+2010-05-03 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * dll_init.cc (dll_list::alloc): Add debugging assertion.
+
2010-04-29 Corinna Vinschen <corinna@vinschen.de>
* dlfcn.cc (get_full_path_of_dll): Handle non-existent file.
#include "exception.h"
#include <wchar.h>
#include <sys/reent.h>
+#include <assert.h>
extern void __stdcall check_sanity_and_sync (per_process *);
{
if (!in_forkee)
d->count++; /* Yes. Bump the usage count. */
- return d; /* Return previously allocated pointer. */
}
-
- /* FIXME: Change this to new at some point. */
- d = (dll *) cmalloc (HEAP_2_DLL, sizeof (*d) + (namelen * sizeof (*name)));
-
- /* Now we've allocated a block of information. Fill it in with the supplied
- info about this DLL. */
- d->count = 1;
- wcscpy (d->name, name);
- d->handle = h;
- d->has_dtors = true;
- d->p = p;
- d->type = type;
- if (end == NULL)
- end = &start; /* Point to "end" of dll chain. */
- end->next = d; /* Standard linked list stuff. */
- d->next = NULL;
- d->prev = end;
- end = d;
- tot++;
- if (type == DLL_LOAD)
- loaded_dlls++;
+ else
+ {
+ /* FIXME: Change this to new at some point. */
+ d = (dll *) cmalloc (HEAP_2_DLL, sizeof (*d) + (namelen * sizeof (*name)));
+
+ /* Now we've allocated a block of information. Fill it in with the supplied
+ info about this DLL. */
+ d->count = 1;
+ wcscpy (d->name, name);
+ d->handle = h;
+ d->has_dtors = true;
+ d->p = p;
+ d->type = type;
+ if (end == NULL)
+ end = &start; /* Point to "end" of dll chain. */
+ end->next = d; /* Standard linked list stuff. */
+ d->next = NULL;
+ d->prev = end;
+ end = d;
+ tot++;
+ if (type == DLL_LOAD)
+ loaded_dlls++;
+ }
+ assert (p->envptr != NULL);
return d;
}