[Lldb-commits] [lldb] r282090 - Fix failing regex tests.
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Wed Sep 21 16:38:50 PDT 2016
This it the perfect example of why not to use a StringRef since the string needs to be null terminated. Why did we change this? Now even if you call this function:
RegularExpression r(...);
r.Execute(".......................", ...)
You will need to duplicate the string on the heap just to execute this. Please revert this. Anything that requires null terminate is not a candidate for converting to StringRef.
> On Sep 21, 2016, at 10:13 AM, Zachary Turner via lldb-commits <lldb-commits at lists.llvm.org> wrote:
>
> Author: zturner
> Date: Wed Sep 21 12:13:51 2016
> New Revision: 282090
>
> URL: http://llvm.org/viewvc/llvm-project?rev=282090&view=rev
> Log:
> Fix failing regex tests.
>
> r282079 converted the regular expression interface to accept
> and return StringRefs instead of char pointers. In one case
> a null pointer check was converted to an empty string check,
> but this was an incorrect conversion because an empty string
> is a valid regular expression. Removing this check should
> fix the test failures.
>
> Modified:
> lldb/trunk/source/Core/RegularExpression.cpp
>
> Modified: lldb/trunk/source/Core/RegularExpression.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/RegularExpression.cpp?rev=282090&r1=282089&r2=282090&view=diff
> ==============================================================================
> --- lldb/trunk/source/Core/RegularExpression.cpp (original)
> +++ lldb/trunk/source/Core/RegularExpression.cpp Wed Sep 21 12:13:51 2016
> @@ -102,7 +102,7 @@ bool RegularExpression::Compile(llvm::St
> //---------------------------------------------------------------------
> bool RegularExpression::Execute(llvm::StringRef str, Match *match) const {
> int err = 1;
> - if (!str.empty() && m_comp_err == 0) {
> + if (m_comp_err == 0) {
> // Argument to regexec must be null-terminated.
> std::string reg_str = str;
> if (match) {
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
More information about the lldb-commits
mailing list