diff options
| -rw-r--r-- | indra/llcommon/llerror.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 3 | 
3 files changed, 16 insertions, 26 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index e3e2698ba7..29de79dc64 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -247,32 +247,15 @@ namespace LLError  {  	std::string Log::demangle(const char* mangled)  	{ - -#if LL_DARWIN -        // MAINT-8724 libc++abi demangling causes malloc check failures -        // that abort the application on OS X 10.14 Mojave so the easy -        // fix is to disable demangling until a better fix can be found. -        return mangled; -#else  #ifdef __GNUC__  		// GCC: type_info::name() returns a mangled class name,st demangle - -		static size_t abi_name_len = 100; -		static char* abi_name_buf = (char*)malloc(abi_name_len); -			// warning: above is voodoo inferred from the GCC manual, -			// do NOT change - -		int status; -			// We don't use status, and shouldn't have to pass apointer to it -			// but gcc 3.3 libstc++'s implementation of demangling is broken -			// and fails without. -			 -		char* name = abi::__cxa_demangle(mangled, -										abi_name_buf, &abi_name_len, &status); -			// this call can realloc the abi_name_buf pointer (!) - -		return name ? name : mangled; - +        // passing nullptr, 0 forces allocation of a unique buffer we can free +        // fixing MAINT-8724 on OSX 10.14 +		int status = -1; +		char* name = abi::__cxa_demangle(mangled, nullptr, 0, &status); +        std::string result(name ? name : mangled); +        free(name); +        return result;  #elif LL_WINDOWS  		// DevStudio: type_info::name() includes the text "class " at the start @@ -290,7 +273,6 @@ namespace LLError  #else  		return mangled;  #endif -#endif  	}  } // LLError diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1629c49276..2fc722d4c3 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2057,7 +2057,12 @@ if (DARWIN)    # These all get set with PROPERTIES    set(product "Second Life")    # this is the setting for the Python wrapper, see SL-322 and WRAPPER line in Info-SecondLife.plist -  set(MACOSX_WRAPPER_EXECUTABLE_NAME "SL_Launcher") +  if (PACKAGE) +      set(MACOSX_WRAPPER_EXECUTABLE_NAME "SL_Launcher") +  else (PACKAGE) +      # force the name of the actual executable to allow running it within Xcode for debugging +      set(MACOSX_WRAPPER_EXECUTABLE_NAME "../Resources/Second Life Viewer.app/Contents/MacOS/Second Life") +  endif (PACKAGE)    set(MACOSX_BUNDLE_INFO_STRING "Second Life Viewer")    set(MACOSX_BUNDLE_ICON_FILE "secondlife.icns")    set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.secondlife.indra.viewer") diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index ce4aab20c7..115a5fc2fc 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1082,6 +1082,8 @@ bool LLAppViewer::init()  		}  	} +// don't nag developers who need to run the executable directly +#if LL_RELEASE_FOR_DOWNLOAD  	char* PARENT = getenv("PARENT");  	if (! (PARENT && std::string(PARENT) == "SL_Launcher"))  	{ @@ -1094,6 +1096,7 @@ bool LLAppViewer::init()  		// him/herself in the foot.  		LLNotificationsUtil::add("RunLauncher");  	} +#endif  #if LL_WINDOWS  	if (gGLManager.mGLVersion < LLFeatureManager::getInstance()->getExpectedGLVersion())  | 
