Give `LLGLSLShader::finishProfile()` a static default string param.
`finishProfile()` is called at least once within a `__try` block. If we default its `report_name` parameter to a temporary `std::string`, that temporary must be destroyed when the stack is unwound, which `__try` forbids. (cherry picked from commit c6e6f44f50b4de391000c5b9f781a2f0a5024e76)master
parent
f037cde7f4
commit
a3d6544be0
|
|
@ -65,6 +65,7 @@ U64 LLGLSLShader::sTotalTimeElapsed = 0;
|
|||
U32 LLGLSLShader::sTotalTrianglesDrawn = 0;
|
||||
U64 LLGLSLShader::sTotalSamplesDrawn = 0;
|
||||
U32 LLGLSLShader::sTotalBinds = 0;
|
||||
std::string LLGLSLShader::sDefaultReportName;
|
||||
|
||||
//UI shader -- declared here so llui_libtest will link properly
|
||||
LLGLSLShader gUIProgram;
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ public:
|
|||
static U32 sMaxGLTFNodes;
|
||||
|
||||
static void initProfile();
|
||||
static void finishProfile(const std::string& report_name={});
|
||||
static void finishProfile(const std::string& report_name=sDefaultReportName);
|
||||
|
||||
static void startProfile();
|
||||
static void stopProfile();
|
||||
|
|
@ -364,6 +364,11 @@ public:
|
|||
|
||||
private:
|
||||
void unloadInternal();
|
||||
// This must be static because finishProfile() is called at least once
|
||||
// within a __try block. If we default its report_name parameter to a
|
||||
// temporary std::string, that temporary must be destroyed when the stack
|
||||
// is unwound, which __try forbids.
|
||||
static std::string sDefaultReportName;
|
||||
};
|
||||
|
||||
//UI shader (declared here so llui_libtest will link properly)
|
||||
|
|
|
|||
Loading…
Reference in New Issue