VOID UninitRefitLib(VOID)
{
UninitVolumes();
-
+
if (SelfDir != NULL) {
refit_call1_wrapper(SelfDir->Close, SelfDir);
SelfDir = NULL;
}
-
+
if (SelfRootDir != NULL) {
- refit_call1_wrapper(SelfRootDir->Close, SelfRootDir);
- SelfRootDir = NULL;
+ refit_call1_wrapper(SelfRootDir->Close, SelfRootDir);
+ SelfRootDir = NULL;
}
}
EFI_STATUS ReinitRefitLib(VOID)
{
ReinitVolumes();
-
- if (SelfVolume != NULL && SelfVolume->RootDir != NULL)
- SelfRootDir = SelfVolume->RootDir;
-
+
+ // Below two lines were in rEFIt, but seem to cause problems on
+ // most systems. OTOH, my Mac Mini produces (apparently harmless)
+ // errors about "(re)opening our installation volume" (see the
+ // next function) when returning from programs when these two lines
+ // are removed. On the gripping hand, the Mac SOMETIMES crashes
+ // when launching a second program even with these lines removed.
+ // TODO: Figure out cause of above weirdness and fix it more
+ // reliably!
+ /* if (SelfVolume != NULL && SelfVolume->RootDir != NULL)
+ SelfRootDir = SelfVolume->RootDir; */
+
return FinishInitRefitLib();
}
NewString[Length1] = AddChar;
NewString[Length1 + 1] = 0;
} // if (AddChar)
- } // if (First != NULL)
+ } // if (*First != NULL)
if (First != NULL)
StrCat(NewString, Second);
FreePool(*First);