Commit 87ea7698 authored by Paul Gofman's avatar Paul Gofman Committed by Alexandre Julliard

ntdll: Allocate TEB FLS data in LdrInitializeThunk().

parent 767fa070
...@@ -2629,7 +2629,6 @@ todo_wine ...@@ -2629,7 +2629,6 @@ todo_wine
SetLastError(0xdeadbeef); SetLastError(0xdeadbeef);
value = pFlsGetValue(fls_index); value = pFlsGetValue(fls_index);
ok(!value, "FlsGetValue returned %p, expected NULL\n", value); ok(!value, "FlsGetValue returned %p, expected NULL\n", value);
todo_wine
ok(GetLastError() == ERROR_SUCCESS, "FlsGetValue failed with error %u\n", GetLastError()); ok(GetLastError() == ERROR_SUCCESS, "FlsGetValue failed with error %u\n", GetLastError());
ret = pFlsSetValue(fls_index, (void*) 0x31415); ret = pFlsSetValue(fls_index, (void*) 0x31415);
ok(ret, "FlsSetValue failed\n"); ok(ret, "FlsSetValue failed\n");
......
...@@ -3511,6 +3511,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR ...@@ -3511,6 +3511,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks ); InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock(); RtlReleasePebLock();
NtCurrentTeb()->FlsSlots = fls_alloc_data();
if (!attach_done) /* first time around */ if (!attach_done) /* first time around */
{ {
attach_done = 1; attach_done = 1;
......
...@@ -129,5 +129,6 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) ...@@ -129,5 +129,6 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
/* FLS data */ /* FLS data */
extern void init_global_fls_data(void) DECLSPEC_HIDDEN; extern void init_global_fls_data(void) DECLSPEC_HIDDEN;
extern TEB_FLS_DATA *fls_alloc_data(void) DECLSPEC_HIDDEN;
#endif #endif
...@@ -294,7 +294,7 @@ static unsigned int fls_chunk_index_from_index( unsigned int index, unsigned int ...@@ -294,7 +294,7 @@ static unsigned int fls_chunk_index_from_index( unsigned int index, unsigned int
return chunk_index; return chunk_index;
} }
static TEB_FLS_DATA * fls_alloc_data(void) TEB_FLS_DATA *fls_alloc_data(void)
{ {
TEB_FLS_DATA *fls; TEB_FLS_DATA *fls;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment