<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Couple things:<div class=""><br class=""></div><div class="">- why do you need stdio.h in your header file?</div><div class=""><div class="">+#include <stdio.h></div></div><div class=""><br class=""></div><div class="">- is there any reason why this constructor is public?</div><div class=""><div class="">+    SBThreadCollection (const lldb::ThreadCollectionSP &thread_list);</div></div><div class=""><br class=""></div><div class="">We are usually trying to keep the constructors that take SP<i class="">s</i> protected so they are not exposed to API clients; unless you have a compelling reason, I’d do the same here</div><div class=""><br class=""></div><div class="">For instance, SBData has the following:</div><div class=""><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(187, 44, 162);" class="">protected<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">:</span></div><p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class="">    <br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>// Mimic shared pointer...</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>lldb_private<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">::</span>DataExtractor<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> *</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    get() <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">const</span>;</div><p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class="">    <br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>lldb_private<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">::</span>DataExtractor<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> *</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(187, 44, 162);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>operator<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">->() </span>const<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">;</span></div><p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class="">    <br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>lldb<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">::</span>DataExtractorSP<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> &</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">operator</span>*();</div><p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class="">    <br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">const</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span>lldb<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">::</span>DataExtractorSP<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> &</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(187, 44, 162);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">    </span>operator<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">*() </span>const<span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">;</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    SBData (<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">const</span> <span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">lldb</span>::<span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">DataExtractorSP</span> &data_sp);</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">void</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo;" class="">    SetOpaque (<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">const</span> <span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">lldb</span>::<span style="font-variant-ligatures: no-common-ligatures; color: #4f8187" class="">DataExtractorSP</span> &data_sp);</div></div><div class=""><br class=""></div><div class="">You could so something similar in your SBThreadCollection; provide protected accessors, constructor and setter, and only keep the default & copy constructors public</div><div class=""><br class=""></div><div class="">On a more philosophical note - is SBThreadCollection meant as a “read-only” snapshot of a set of threads as they existed at one time?</div><div class="">If so, then it’s all fine and dandy</div><div class="">But it seems that this class lacks any write access; I can’t create a new thread collection and start adding threads to it</div><div class="">Is this intended in your design, or did you just not feel the need to allow that?</div><div class="">Mostly curious..</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 5, 2014, at 2:20 PM, Kuba Brecka <<a href="mailto:kuba.brecka@gmail.com" class="">kuba.brecka@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Another piece of the puzzle, let's expose the newly abstracted ThreadCollection into SB API, based on <a href="http://reviews.llvm.org/D5200" class="">http://reviews.llvm.org/D5200</a> and another patch that will actually provide an SBThreadCollection of ASan history threads is coming next.<br class=""><br class=""><a href="http://reviews.llvm.org/D5218" class="">http://reviews.llvm.org/D5218</a><br class=""><br class="">Files:<br class="">  include/lldb/API/SBDefines.h<br class="">  include/lldb/API/SBThreadCollection.h<br class="">  lldb.xcodeproj/project.pbxproj<br class="">  scripts/Python/build-swig-Python.sh<br class="">  scripts/Python/buildSwigPython.py<br class="">  scripts/Python/interface/SBThreadCollection.i<br class="">  scripts/lldb.swig<br class="">  source/API/SBThreadCollection.cpp<br class=""><span id="cid:65C863D9-E8B8-4CA5-9D77-8184E2B4561A@apple.com"><D5218.13339.patch></span>_______________________________________________<br class="">lldb-commits mailing list<br class="">lldb-commits@cs.uiuc.edu<br class="">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits<br class=""></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Thanks,</div><div class=""><i class="">- Enrico</i><br class="">📩 egranata@<font color="#ff2600" class=""></font>.com ☎️ 27683</div><div class=""><br class=""></div></div></div></div></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></div></body></html>