|
105 | 105 | ///////////////////////////////////////////////////////////////////////////////
|
106 | 106 |
|
107 | 107 | #ifndef EASTL_VERSION
|
108 |
| - #define EASTL_VERSION "3.00.00" |
109 |
| - #define EASTL_VERSION_N 30000 |
| 108 | + #define EASTL_VERSION "3.01.00" |
| 109 | + #define EASTL_VERSION_N 30100 |
110 | 110 | #endif
|
111 | 111 |
|
112 | 112 |
|
@@ -585,42 +585,59 @@ namespace eastl
|
585 | 585 |
|
586 | 586 |
|
587 | 587 | ///////////////////////////////////////////////////////////////////////////////
|
588 |
| -// EASTL_DEBUG_BREAK |
| 588 | +// EASTL_DEBUG_BREAK / EASTL_DEBUG_BREAK_OVERRIDE |
589 | 589 | //
|
590 | 590 | // This function causes an app to immediately stop under the debugger.
|
591 | 591 | // It is implemented as a macro in order to allow stopping at the site
|
592 | 592 | // of the call.
|
593 | 593 | //
|
| 594 | +// EASTL_DEBUG_BREAK_OVERRIDE allows one to define EASTL_DEBUG_BREAK directly. |
| 595 | +// This is useful in cases where you desire to disable EASTL_DEBUG_BREAK |
| 596 | +// but do not wish to (or cannot) define a custom void function() to replace |
| 597 | +// EASTL_DEBUG_BREAK callsites. |
594 | 598 | //
|
595 | 599 | // Example usage:
|
596 | 600 | // EASTL_DEBUG_BREAK();
|
597 | 601 | //
|
598 | 602 | ///////////////////////////////////////////////////////////////////////////////
|
599 | 603 |
|
600 |
| -#ifndef EASTL_DEBUG_BREAK |
601 |
| - #if defined(_MSC_VER) && (_MSC_VER >= 1300) |
602 |
| - #define EASTL_DEBUG_BREAK() __debugbreak() // This is a compiler intrinsic which will map to appropriate inlined asm for the platform. |
603 |
| - #elif (defined(EA_PROCESSOR_ARM) && !defined(EA_PROCESSOR_ARM64)) && defined(__APPLE__) |
604 |
| - #define EASTL_DEBUG_BREAK() asm("trap") |
605 |
| - #elif defined(EA_PROCESSOR_ARM64) && defined(__APPLE__) |
606 |
| - #include <signal.h> |
607 |
| - #include <unistd.h> |
608 |
| - #define EASTL_DEBUG_BREAK() kill( getpid(), SIGINT ) |
609 |
| - #elif defined(EA_PROCESSOR_ARM) && defined(__GNUC__) |
610 |
| - #define EASTL_DEBUG_BREAK() asm("BKPT 10") // The 10 is arbitrary. It's just a unique id. |
611 |
| - #elif defined(EA_PROCESSOR_ARM) && defined(__ARMCC_VERSION) |
612 |
| - #define EASTL_DEBUG_BREAK() __breakpoint(10) |
613 |
| - #elif defined(EA_PROCESSOR_POWERPC) // Generic PowerPC. |
614 |
| - #define EASTL_DEBUG_BREAK() asm(".long 0") // This triggers an exception by executing opcode 0x00000000. |
615 |
| - #elif (defined(EA_PROCESSOR_X86) || defined(EA_PROCESSOR_X86_64)) && defined(EA_ASM_STYLE_INTEL) |
616 |
| - #define EASTL_DEBUG_BREAK() { __asm int 3 } |
617 |
| - #elif (defined(EA_PROCESSOR_X86) || defined(EA_PROCESSOR_X86_64)) && (defined(EA_ASM_STYLE_ATT) || defined(__GNUC__)) |
618 |
| - #define EASTL_DEBUG_BREAK() asm("int3") |
619 |
| - #else |
620 |
| - void EASTL_DEBUG_BREAK(); // User must define this externally. |
621 |
| - #endif |
| 604 | +#ifndef EASTL_DEBUG_BREAK_OVERRIDE |
| 605 | + #ifndef EASTL_DEBUG_BREAK |
| 606 | + #if defined(_MSC_VER) && (_MSC_VER >= 1300) |
| 607 | + #define EASTL_DEBUG_BREAK() __debugbreak() // This is a compiler intrinsic which will map to appropriate inlined asm for the platform. |
| 608 | + #elif (defined(EA_PROCESSOR_ARM) && !defined(EA_PROCESSOR_ARM64)) && defined(__APPLE__) |
| 609 | + #define EASTL_DEBUG_BREAK() asm("trap") |
| 610 | + #elif defined(EA_PROCESSOR_ARM64) && defined(__APPLE__) |
| 611 | + #include <signal.h> |
| 612 | + #include <unistd.h> |
| 613 | + #define EASTL_DEBUG_BREAK() kill( getpid(), SIGINT ) |
| 614 | + #elif defined(EA_PROCESSOR_ARM) && defined(__GNUC__) |
| 615 | + #define EASTL_DEBUG_BREAK() asm("BKPT 10") // The 10 is arbitrary. It's just a unique id. |
| 616 | + #elif defined(EA_PROCESSOR_ARM) && defined(__ARMCC_VERSION) |
| 617 | + #define EASTL_DEBUG_BREAK() __breakpoint(10) |
| 618 | + #elif defined(EA_PROCESSOR_POWERPC) // Generic PowerPC. |
| 619 | + #define EASTL_DEBUG_BREAK() asm(".long 0") // This triggers an exception by executing opcode 0x00000000. |
| 620 | + #elif (defined(EA_PROCESSOR_X86) || defined(EA_PROCESSOR_X86_64)) && defined(EA_ASM_STYLE_INTEL) |
| 621 | + #define EASTL_DEBUG_BREAK() { __asm int 3 } |
| 622 | + #elif (defined(EA_PROCESSOR_X86) || defined(EA_PROCESSOR_X86_64)) && (defined(EA_ASM_STYLE_ATT) || defined(__GNUC__)) |
| 623 | + #define EASTL_DEBUG_BREAK() asm("int3") |
| 624 | + #else |
| 625 | + void EASTL_DEBUG_BREAK(); // User must define this externally. |
| 626 | + #endif |
| 627 | + #else |
| 628 | + void EASTL_DEBUG_BREAK(); // User must define this externally. |
| 629 | + #endif |
622 | 630 | #else
|
623 |
| - void EASTL_DEBUG_BREAK(); // User must define this externally. |
| 631 | + #ifndef EASTL_DEBUG_BREAK |
| 632 | + #if EASTL_DEBUG_BREAK_OVERRIDE == 1 |
| 633 | + // define an empty callable to satisfy the call site. |
| 634 | + #define EASTL_DEBUG_BREAK ([]{}) |
| 635 | + #else |
| 636 | + #define EASTL_DEBUG_BREAK EASTL_DEBUG_BREAK_OVERRIDE |
| 637 | + #endif |
| 638 | + #else |
| 639 | + #error EASTL_DEBUG_BREAK is already defined yet you would like to override it. Please ensure no other headers are already defining EASTL_DEBUG_BREAK before this header (config.h) is included |
| 640 | + #endif |
624 | 641 | #endif
|
625 | 642 |
|
626 | 643 |
|
@@ -1451,7 +1468,7 @@ namespace eastl
|
1451 | 1468 | ///////////////////////////////////////////////////////////////////////////////
|
1452 | 1469 | // EA_COMPILER_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS undef
|
1453 | 1470 | //
|
1454 |
| -// We need revise this macro to be unefined in some cases, in case the user |
| 1471 | +// We need revise this macro to be undefined in some cases, in case the user |
1455 | 1472 | // isn't using an updated EABase.
|
1456 | 1473 | ///////////////////////////////////////////////////////////////////////////////
|
1457 | 1474 | #if defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 403) // It may in fact be supported by 4.01 or 4.02 but we don't have compilers to test with.
|
@@ -1763,11 +1780,18 @@ typedef EASTL_SSIZE_T eastl_ssize_t; // Signed version of eastl_size_t. Concept
|
1763 | 1780 | /// EASTL_OPENSOURCE
|
1764 | 1781 | /// This is enabled when EASTL is building built in an "open source" mode. Which is a mode that eliminates code
|
1765 | 1782 | /// dependencies on other technologies that have not been released publically.
|
1766 |
| -/// EASTL_OPENSOURCE = 0, is the default. |
| 1783 | +/// EASTL_OPENSOURCE = 0, is the default. |
1767 | 1784 | /// EASTL_OPENSOURCE = 1, utilizes technologies that not publically available.
|
1768 | 1785 | ///
|
1769 | 1786 | #ifndef EASTL_OPENSOURCE
|
1770 | 1787 | #define EASTL_OPENSOURCE 0
|
1771 | 1788 | #endif
|
1772 | 1789 |
|
1773 | 1790 | #endif // Header include guard
|
| 1791 | + |
| 1792 | + |
| 1793 | + |
| 1794 | + |
| 1795 | + |
| 1796 | + |
| 1797 | + |
0 commit comments