labath added a comment.

I don't think we actually disagree here. I'm aware of your use case (let's call 
it "dynamic mode") for appending to a buffer. I agree it's useful and I don't 
want to change that. What I want to remove is the other mode (non-dynamic). 
Presently, this is the only mode, but we're not actually making a good use of 
it. All of the existing use cases can be implemented with a "dynamic" buffer. 
And the code would be much simpler since there is only one mode to support -- 
one in which the data encoder owns the buffer it is writing to and can resize 
it at will.



================
Comment at: lldb/source/Expression/DWARFExpression.cpp:465
       std::unique_ptr<DataBufferHeap> head_data_up(
           new DataBufferHeap(m_data.GetDataStart(), m_data.GetByteSize()));
 
----------------
clayborg wrote:
> That would crash the program. The data here is coming from the DWARF from a 
> mmap'ed read only file. We can't modify the data, and thus this is why we 
> make a copy in the first place: so we can modify the DWARF data and fixup the 
> address info.
With the current implementation yes. But this was meant to be done in 
conjuction with the changes to the DataEncoder constructor. The idea is that 
the constructor itself would copy the data into the owned buffer such that it 
can be freely modified or appended to. (In here we wouldn't make use of the 
append functionality, but that doesn't matter.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115073/new/

https://reviews.llvm.org/D115073

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to