mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2025-03-11 13:12:14 +01:00
Real fix to XCode optimization bug.
This commit is contained in:
parent
e7bb2bd3bd
commit
541762427a
Include/Library
rEFIt_UEFI
@ -182,7 +182,7 @@ typedef union {
|
|||||||
#define PRINTF_VA_ARG va_arg
|
#define PRINTF_VA_ARG va_arg
|
||||||
#endif
|
#endif
|
||||||
#ifndef PRINTF_VA_END
|
#ifndef PRINTF_VA_END
|
||||||
#define PRINTF_VA_END VA_END
|
#define PRINTF_VA_END va_end
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ typedef union {
|
|||||||
void printf_with_callback_timestamp(const char* format, transmitBufCallBackType transmitBufCallBack, void* context, int* newline, int timestamp, ...);
|
void printf_with_callback_timestamp(const char* format, transmitBufCallBackType transmitBufCallBack, void* context, int* newline, int timestamp, ...);
|
||||||
inline void printf_with_callback(const char* format, transmitBufCallBackType transmitBufCallBack, void* context, ...) {
|
inline void printf_with_callback(const char* format, transmitBufCallBackType transmitBufCallBack, void* context, ...) {
|
||||||
PRINTF_VA_LIST va;
|
PRINTF_VA_LIST va;
|
||||||
va_start(va, context);
|
PRINTF_VA_START(va, context);
|
||||||
vprintf_with_callback_timestamp(format, va, transmitBufCallBack, context, NULL, 0);
|
vprintf_with_callback_timestamp(format, va, transmitBufCallBack, context, NULL, 0);
|
||||||
PRINTF_VA_END(va);
|
PRINTF_VA_END(va);
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,6 @@
|
|||||||
Slice 2012
|
Slice 2012
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__clang__)
|
|
||||||
#pragma clang optimize off
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <Platform.h>
|
#include <Platform.h>
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
#include "FixBiosDsdt.h"
|
#include "FixBiosDsdt.h"
|
||||||
@ -5065,9 +5061,8 @@ EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings)
|
|||||||
// }
|
// }
|
||||||
if ( arbProp == NULL ) {
|
if ( arbProp == NULL ) {
|
||||||
arbProp = new SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass();
|
arbProp = new SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass();
|
||||||
DBG("new ArbitraryPropertyClass()=%lld\n", uintptr_t(arbProp));
|
|
||||||
arbProp->Label = Label;
|
|
||||||
arbProp->Device = (UINT32)DeviceAddr;
|
arbProp->Device = (UINT32)DeviceAddr;
|
||||||
|
arbProp->Label = Label;
|
||||||
gSettings.Devices.ArbitraryArray.AddReference(arbProp, true);
|
gSettings.Devices.ArbitraryArray.AddReference(arbProp, true);
|
||||||
}
|
}
|
||||||
arbProp->CustomPropertyArray.AddReference(newDevProp, true);
|
arbProp->CustomPropertyArray.AddReference(newDevProp, true);
|
||||||
|
@ -631,6 +631,8 @@ public:
|
|||||||
MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE();
|
MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE();
|
||||||
XString8 SlotName = XString8();
|
XString8 SlotName = XString8();
|
||||||
|
|
||||||
|
SLOT_DEVICE() {}
|
||||||
|
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
bool operator == (const SLOT_DEVICE&) const = default;
|
bool operator == (const SLOT_DEVICE&) const = default;
|
||||||
#endif
|
#endif
|
||||||
@ -1279,6 +1281,8 @@ public:
|
|||||||
XString8 DevicePathAsString = XString8();
|
XString8 DevicePathAsString = XString8();
|
||||||
XString8 Label = XString8();
|
XString8 Label = XString8();
|
||||||
|
|
||||||
|
AddPropertyClass() {}
|
||||||
|
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
bool operator == (const AddPropertyClass&) const = default;
|
bool operator == (const AddPropertyClass&) const = default;
|
||||||
#endif
|
#endif
|
||||||
@ -1304,6 +1308,8 @@ public:
|
|||||||
TAG_TYPE ValueType = kTagTypeNone; // only used in CreateMenuProps()
|
TAG_TYPE ValueType = kTagTypeNone; // only used in CreateMenuProps()
|
||||||
INPUT_ITEM MenuItem = INPUT_ITEM(); // Will get the Disabled value
|
INPUT_ITEM MenuItem = INPUT_ITEM(); // Will get the Disabled value
|
||||||
|
|
||||||
|
SimplePropertyClass() {}
|
||||||
|
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
bool operator == (const SimplePropertyClass&) const = default;
|
bool operator == (const SimplePropertyClass&) const = default;
|
||||||
#endif
|
#endif
|
||||||
@ -1330,6 +1336,8 @@ public:
|
|||||||
// XString8 Label = XString8(); // Label is the same as DevicePathAsString, so it's not needed.
|
// XString8 Label = XString8(); // Label is the same as DevicePathAsString, so it's not needed.
|
||||||
XObjArray<SimplePropertyClass> propertiesArray = XObjArray<SimplePropertyClass>();
|
XObjArray<SimplePropertyClass> propertiesArray = XObjArray<SimplePropertyClass>();
|
||||||
|
|
||||||
|
PropertyClass() {}
|
||||||
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL* getDevicePath() const
|
EFI_DEVICE_PATH_PROTOCOL* getDevicePath() const
|
||||||
{
|
{
|
||||||
EFI_DEVICE_PATH_PROTOCOL* DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL* DevicePath;
|
||||||
@ -1376,6 +1384,7 @@ public:
|
|||||||
XString8 Label = XString8();
|
XString8 Label = XString8();
|
||||||
XObjArray<SimplePropertyClass> CustomPropertyArray = XObjArray<SimplePropertyClass> ();
|
XObjArray<SimplePropertyClass> CustomPropertyArray = XObjArray<SimplePropertyClass> ();
|
||||||
|
|
||||||
|
ArbitraryPropertyClass() {}
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
bool operator == (const ArbitraryPropertyClass&) const = default;
|
bool operator == (const ArbitraryPropertyClass&) const = default;
|
||||||
#endif
|
#endif
|
||||||
|
@ -27,7 +27,9 @@ public:
|
|||||||
XString8 SerialNo = XString8();
|
XString8 SerialNo = XString8();
|
||||||
UINT8 Type = UINT8();
|
UINT8 Type = UINT8();
|
||||||
bool InUse = bool();
|
bool InUse = bool();
|
||||||
|
|
||||||
|
RAM_SLOT_INFO() {}
|
||||||
|
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
bool operator == (const RAM_SLOT_INFO&) const = default;
|
bool operator == (const RAM_SLOT_INFO&) const = default;
|
||||||
#endif
|
#endif
|
||||||
|
@ -57,12 +57,12 @@ void construct_globals_objects(EFI_HANDLE ImageHandle)
|
|||||||
{
|
{
|
||||||
|
|
||||||
ctor_ptr* currentCtor = (ctor_ptr*) (((UINTN) (LoadedImage->ImageBase)) + SectionHeader->PointerToRawData);
|
ctor_ptr* currentCtor = (ctor_ptr*) (((UINTN) (LoadedImage->ImageBase)) + SectionHeader->PointerToRawData);
|
||||||
ctor_ptr* ctorend = (ctor_ptr*) (((UINTN) (LoadedImage->ImageBase)) + SectionHeader->PointerToRawData + SectionHeader->Misc.VirtualSize);
|
ctor_ptr* ctorEnd = (ctor_ptr*) (((UINTN) (LoadedImage->ImageBase)) + SectionHeader->PointerToRawData + SectionHeader->Misc.VirtualSize);
|
||||||
|
DBG("currentBegin %llX, ctorEnd %llX, %lld ctors to call\n", (UINTN)(currentCtor), (UINTN)(ctorEnd), (UINTN)(ctorEnd-currentCtor));
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
while (currentCtor < ctorend)
|
while (currentCtor < ctorEnd)
|
||||||
{
|
{
|
||||||
DBG("¤tCtor[%zu] %llX %lld\n", i, (UINTN) (currentCtor), (UINTN) (currentCtor));
|
DBG("[%03zu] &ctor %08llX, will call %08llX\n", i, (UINTN)(currentCtor), (UINTN)(*currentCtor));
|
||||||
DBG("currentCtor[%zu] %llX %lld\n", i, (UINTN) (*currentCtor), (UINTN) (*currentCtor));
|
|
||||||
if (*currentCtor != NULL) (*currentCtor)();
|
if (*currentCtor != NULL) (*currentCtor)();
|
||||||
currentCtor++;
|
currentCtor++;
|
||||||
i++;
|
i++;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
void* operator new (size_t count)
|
void* operator new (size_t count)
|
||||||
#else
|
#else
|
||||||
void* operator new (unsigned long count)
|
void* operator new(unsigned long count)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
void* ptr = AllocatePool(count);
|
void* ptr = AllocatePool(count);
|
||||||
@ -21,9 +21,9 @@ void* operator new (unsigned long count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
void* operator new[] (size_t count)
|
void* operator new[](size_t count)
|
||||||
#else
|
#else
|
||||||
void* operator new[] (unsigned long count)
|
void* operator new[](unsigned long count)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
void* ptr = AllocatePool(count);
|
void* ptr = AllocatePool(count);
|
||||||
|
Loading…
Reference in New Issue
Block a user