================
@@ -479,9 +494,10 @@ static bool ReadEncodedBufferAndDumpToStream(
                     target_sp->GetArchitecture().GetAddressByteSize()));
   dump_options.SetSourceSize(sourceSize);
   dump_options.SetIsTruncated(is_truncated);
-  dump_options.SetNeedsZeroTermination(needs_zero_terminator);
-  if (needs_zero_terminator)
-    dump_options.SetBinaryZeroIsTerminator(true);
+  if (needs_zero_terminator) {
+    dump_options.SetZeroTermination(
+        StringPrinter::ZeroTermination::ZeroTerminate);
+  }
----------------
Nerixyz wrote:

`needs_zero_terminator` gets updated in the function if `elem_type == 
StringElementType::ASCII && !options.GetSourceSize()` or 
`!options.HasSourceSize()`.

There's a comment I forgot to update:
```cpp
    // FIXME: The NSString formatter sets HasSourceSize(true) when the size is
    // actually unknown, as well as SetZeroTermination(Ignore). IIUC the
    // C++ formatter also sets SetZeroTermination(Ignore) when it doesn't
    // mean to. I don't see how this makes sense: we should fix the formatters.
    //
    // Until then, the behavior that's expected for ASCII strings with unknown
    // lengths is to read up to the max size and then null-terminate. Do that.
```

I'm not sure if that's still true. At least the C++ formatters don't use this 
path (anymore?). `NSSting` only sets `HasSourceSize(true)` if it actually has a 
size.
So maybe we could remove that branch?

https://github.com/llvm/llvm-project/pull/195514
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to