[NT32] Emulator can't run when built with /O1


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2512 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
xgu3 2007-03-29 06:04:36 +00:00
parent 4b2e068430
commit cb360b2656

View File

@ -138,11 +138,12 @@ Returns:
ASSERT (0);
}
for (Pointer = Str; *(Pointer + Count); Pointer++) {
*Pointer = *(Pointer + Count);
if (Count != 0) {
for (Pointer = Str; *(Pointer + Count); Pointer++) {
*Pointer = *(Pointer + Count);
}
*Pointer = *(Pointer + Count);
}
*Pointer = *(Pointer + Count);
}
@ -632,13 +633,10 @@ Returns:
CHAR16 TempChar;
DWORD LastError;
UINTN Count;
BOOLEAN TrailingDash;
BOOLEAN LoopFinish;
UINTN InfoSize;
EFI_FILE_INFO *Info;
TrailingDash = FALSE;
//
// Check for obvious invalid parameters.
//
@ -667,10 +665,27 @@ Returns:
return EFI_INVALID_PARAMETER;
}
//
// Init local variables
//
PrivateFile = WIN_NT_EFI_FILE_PRIVATE_DATA_FROM_THIS (This);
PrivateRoot = WIN_NT_SIMPLE_FILE_SYSTEM_PRIVATE_DATA_FROM_THIS (PrivateFile->SimpleFileSystem);
NewPrivateFile = NULL;
//
// Allocate buffer for FileName as the passed in FileName may be read only
//
Status = gBS->AllocatePool (
EfiBootServicesData,
StrSize (FileName),
&TempFileName
);
if (EFI_ERROR (Status)) {
return Status;
}
StrCpy (TempFileName, FileName);
FileName = TempFileName;
//
// BUGBUG: assume an open of root
// if current location, return current data
@ -686,7 +701,6 @@ OpenRoot:
}
if (FileName[StrLen (FileName) - 1] == L'\\') {
TrailingDash = TRUE;
FileName[StrLen (FileName) - 1] = 0;
}
@ -1067,10 +1081,7 @@ OpenRoot:
}
Done: ;
if (TrailingDash) {
FileName[StrLen (FileName) + 1] = 0;
FileName[StrLen (FileName)] = L'\\';
}
gBS->FreePool (FileName);
if (EFI_ERROR (Status)) {
if (NewPrivateFile) {