================
@@ -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