- More proper fix for the QEMU/Abiword regression. Remove kernel32 hack. Thanks to...
authorAlex Ionescu <aionescu@gmail.com>
Tue, 3 Jan 2006 22:36:36 +0000 (22:36 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Tue, 3 Jan 2006 22:36:36 +0000 (22:36 +0000)
svn path=/trunk/; revision=20556

reactos/lib/kernel32/misc/atom.c
reactos/lib/ntdll/ldr/startup.c

index 485af4f..c88a4ca 100644 (file)
@@ -72,7 +72,6 @@ InternalAddAtom(BOOLEAN Local,
             /* Check if we can abuse the TEB */
             if (AnsiString.MaximumLength > 260)
             {
-RosHack:
                 /* We can't, allocate a new string */
                 AtomNameString = &UnicodeString;
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
@@ -84,14 +83,6 @@ RosHack:
                 /* We can! Get the TEB String */
                 AtomNameString = &NtCurrentTeb()->StaticUnicodeString;
 
-                /* FIXME: HACK! */
-                if (!AtomNameString->MaximumLength)
-                {
-                    DPRINT1("Hit the ROS TEB Static Unicode String Bug\n",
-                            "Please try to fix the underlying problem!!!\n");
-                    goto RosHack;
-                }
-
                 /* Convert it into the TEB */
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
                                                       &AnsiString,
@@ -182,7 +173,6 @@ InternalFindAtom(BOOLEAN Local,
             /* Check if we can abuse the TEB */
             if (AnsiString.MaximumLength > 260)
             {
-RosHack:
                 /* We can't, allocate a new string */
                 AtomNameString = &UnicodeString;
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
@@ -194,14 +184,6 @@ RosHack:
                 /* We can! Get the TEB String */
                 AtomNameString = &NtCurrentTeb()->StaticUnicodeString;
 
-                /* FIXME: HACK! */
-                if (!AtomNameString->MaximumLength)
-                {
-                    DPRINT1("Hit the ROS TEB Static Unicode String Bug\n",
-                            "Please try to fix the underlying problem!!!\n");
-                    goto RosHack;
-                }
-
                 /* Convert it into the TEB */
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
                                                       &AnsiString,
index 7cfcbb4..2030dba 100644 (file)
@@ -377,6 +377,11 @@ LdrpInit(PCONTEXT Context,
        /* Load execution options */
        LoadImageFileExecutionOptions(Peb);
 
+       /* Initialize the static teb string */
+       NtCurrentTeb()->StaticUnicodeString.Length = 0;
+       NtCurrentTeb()->StaticUnicodeString.MaximumLength = sizeof(NtCurrentTeb()->StaticUnicodeBuffer);
+       NtCurrentTeb()->StaticUnicodeString.Buffer = NtCurrentTeb()->StaticUnicodeBuffer;
+
        /* build full ntdll path */
        wcscpy (FullNtDllPath, SharedUserData->NtSystemRoot);
        wcscat (FullNtDllPath, L"\\system32\\ntdll.dll");