Module: Mesa Branch: master Commit: 0e1e5a2b14cb602030928431bec45af394be43e3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e1e5a2b14cb602030928431bec45af394be43e3
Author: Tim Rowley <[email protected]> Date: Mon Jun 26 08:57:38 2017 -0500 swr/rast: adjust std::string usage to fix build Some combinations of c++ compilers and standard libraries had problems with the string::replace code we were using previously. This should fix the travis-ci system. Tested-by: Eric Engestrom <[email protected]> Reviewed-by: Bruce Cherniak <[email protected]> --- .../drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp index 0527bf3b31..e109fd2659 100644 --- a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp +++ b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp @@ -141,21 +141,27 @@ extern GlobalKnobs g_GlobalKnobs; void KnobBase::autoExpandEnvironmentVariables(std::string &text) { { + // unix style variable replacement static std::regex env("\\$\\{([^}]+)\\}"); std::smatch match; while (std::regex_search(text, match, env)) { const std::string var = GetEnv(match[1].str()); - text.replace(match[0].first, match[0].second, var); + // certain combinations of gcc/libstd++ have problems with this + // text.replace(match[0].first, match[0].second, var); + text.replace(match.prefix().length(), match[0].length(), var); } } { + // win32 style variable replacement static std::regex env("\\%([^}]+)\\%"); std::smatch match; while (std::regex_search(text, match, env)) { const std::string var = GetEnv(match[1].str()); - text.replace(match[0].first, match[0].second, var); + // certain combinations of gcc/libstd++ have problems with this + // text.replace(match[0].first, match[0].second, var); + text.replace(match.prefix().length(), match[0].length(), var); } } } @@ -232,4 +238,4 @@ std::string GlobalKnobs::ToString(const char* optPerLinePrefix) return ' '*(max_len - name_len) -%> \ No newline at end of file +%> _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
