<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Dec 5, 2014, at 2:52 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 5, 2014 at 2:03 PM, Nick Kledzik <span dir="ltr"><<a href="mailto:kledzik@apple.com" target="_blank">kledzik@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kledzik<br>
Date: Fri Dec  5 16:03:20 2014<br>
New Revision: 223527<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=223527&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=223527&view=rev</a><br>
Log:<br>
[mach-o] Pass vectors by reference and name empty vector.<br>
<br>
Modified:<br>
    lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp?rev=223527&r1=223526&r2=223527&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp?rev=223527&r1=223526&r2=223527&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/CompactUnwindPass.cpp Fri Dec  5 16:03:20 2014<br>
@@ -67,9 +67,9 @@ struct UnwindInfoPage {<br>
 class UnwindInfoAtom : public SimpleDefinedAtom {<br>
 public:<br>
   UnwindInfoAtom(ArchHandler &archHandler, const File &file, bool isBig,<br>
-                 std::vector<uint32_t> commonEncodings,<br>
-                 std::vector<const Atom *> personalities,<br>
-                 std::vector<UnwindInfoPage> pages, uint32_t numLSDAs)<br>
+                 std::vector<const Atom *> &personalities,<br>
+                 std::vector<uint32_t> &commonEncodings,<br>
+                 std::vector<UnwindInfoPage> &pages, uint32_t numLSDAs)<br></blockquote><div><br>Should these be const ref? Does the caller already use the side-effects, not expect side effects, or not care about the side effects of the ctors possible mutations of these vectors?<br></div></div></div></div></blockquote><div>The call to this constructor is the last thing done in this Pass, so the caller does nothing with the vectors afterwards.  They can probably be const, but this pass needs lots of other work.  I’ll fix the const-ness when I do other improvements.</div><div><br></div><div>-Nick</div><div><br></div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       : SimpleDefinedAtom(file), _archHandler(archHandler),<br>
         _commonEncodingsOffset(7 * sizeof(uint32_t)),<br>
         _personalityArrayOffset(_commonEncodingsOffset +<br>
@@ -302,6 +302,9 @@ private:<br>
     // also probably be sorted by frequency.<br>
     assert(personalities.size() <= 4);<br>
<br>
+    // TODO: Find commmon encodings for use by compressed pages.<br>
+    std::vector<uint32_t> commonEncodings;<br>
+<br>
     // Now sort the entries by final address and fixup the compact encoding to<br>
     // its final form (i.e. set personality function bits & create DWARF<br>
     // references where needed).<br>
@@ -338,8 +341,8 @@ private:<br>
     } while (pageStart < unwindInfos.size());<br>
<br>
     UnwindInfoAtom *unwind = new (_file.allocator())<br>
-        UnwindInfoAtom(_archHandler, _file, _isBig, std::vector<uint32_t>(),<br>
-                       personalities, pages, numLSDAs);<br>
+        UnwindInfoAtom(_archHandler, _file, _isBig, personalities,<br>
+                       commonEncodings, pages, numLSDAs);<br>
     mergedFile->addAtom(*unwind);<br>
<br>
     // Finally, remove all __compact_unwind atoms now that we've processed them.<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>
</blockquote></div><br></body></html>