diff options
| -rw-r--r-- | indra/llcommon/llerror.cpp | 16 | ||||
| -rw-r--r-- | indra/llcommon/llerror.h | 11 | 
2 files changed, 5 insertions, 22 deletions
| diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 41c69ba194..ad35bc84f2 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -1641,19 +1641,3 @@ namespace LLError          sLocalizedOutOfMemoryWarning = message;      }  } - -void crashdriver(void (*callback)(int*)) -{ -    // The LLERROR_CRASH macro used to have inline code of the form: -    //int* make_me_crash = NULL; -    //*make_me_crash = 0; - -    // But compilers are getting smart enough to recognize that, so we must -    // assign to an address supplied by a separate source file. We could do -    // the assignment here in crashdriver() -- but then BugSplat would group -    // all LL_ERRS() crashes as the fault of this one function, instead of -    // identifying the specific LL_ERRS() source line. So instead, do the -    // assignment in a lambda in the caller's source. We just provide the -    // nullptr target. -    callback(nullptr); -} diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 6176ce0d1d..8a143ff30a 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -408,9 +408,11 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;  #define LL_NEWLINE '\n'  // Use this only in LL_ERRS or in a place that LL_ERRS may not be used -#define LLERROR_CRASH                                   \ -{                                                       \ -    crashdriver([](int* ptr){ *ptr = 0; exit(*ptr); }); \ +#define LLERROR_CRASH                                \ +{                                                    \ +    int* make_me_crash = (int*)0xDEADBEEFDEADBEEFUL; \ +    *make_me_crash = 0;                              \ +    exit(*make_me_crash);                            \  }  #define LL_ENDL                                         \ @@ -512,7 +514,4 @@ LL_DEBUGS("SomeTag") performs the locking and map-searching ONCE, then caches  the result in a static variable.  */ -// used by LLERROR_CRASH -void crashdriver(void (*)(int*)); -  #endif // LL_LLERROR_H | 
