[lldb-dev] LLDB API c++ exports

Zachary Turner zturner at google.com
Tue May 27 14:59:55 PDT 2014


On Tue, May 27, 2014 at 2:56 PM,  <jingham at apple.com> wrote:
>
>> On May 27, 2014, at 2:49 PM, Zachary Turner <zturner at google.com> wrote:
>> What I meant is that you change this (for example):
>>
>> std::shared_ptr<ValueImpl> m_opaque_sp;
>>
>> to this:
>>
>> std::shared_ptr<ValueImpl>* m_opaque_sp;
>>
>> And allocate in the constructor / copy constructor, delete in the
>> destructor.  Then you change every occurrence of m_opaque_sp-> to
>> (*m_opaque_sp)->
>>
>
> No, I don't think we should do that either.  It just adds ugly boiler plate and the chance for error, and doesn't solve any actual problems.

Greg's suggestion will still generate the warnings (at least in MSVC),
for the simple fact that the shared_ptr<> etc is declared as a
stack-based class member.  But if it's guaranteed that these methods
aren't publicly accessible, then suppressing the warning is probably
fine.

I'm a Windows person, so I don't have the means to easily test this
kind of change on Mac OSX.  Does Mac OSX use the cmake build?  If so,
does this mean I only need to define LLDB_PRIVATE in the cmake file
and can assume it will work on the Mac build?  Or is there more
involved?



More information about the lldb-dev mailing list