[PATCH] D111889: [AIX] Support of Big archive (read)

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 13 00:15:50 PST 2022


jhenderson added a comment.

Apologies, missed one signficant thing in my previous review: change `createArchiveMemberHeader` to make and return a `unique_ptr`



================
Comment at: llvm/include/llvm/Object/Archive.h:374
 
+  AbstractArchiveMemberHeader *
+  createArchiveMemberHeader(const char *RawHeaderPtr, uint64_t Size,
----------------



================
Comment at: llvm/lib/Object/Archive.cpp:442-443
+    : Parent(Parent), Data(Data), StartOfFile(StartOfFile) {
+  Header = std::unique_ptr<AbstractArchiveMemberHeader>(
+      Parent->createArchiveMemberHeader(Data.data(), Data.size(), nullptr));
+}
----------------
Related to other comment.


================
Comment at: llvm/lib/Object/Archive.cpp:453-458
+  Header = std::unique_ptr<AbstractArchiveMemberHeader>(
+      Parent->createArchiveMemberHeader(
+          Start,
+          Parent ? Parent->getData().size() - (Start - Parent->getData().data())
+                 : 0,
+          Err));
----------------
Related to other comment.


================
Comment at: llvm/lib/Object/Archive.cpp:660-667
+AbstractArchiveMemberHeader *
+Archive::createArchiveMemberHeader(const char *RawHeaderPtr, uint64_t Size,
+                                   Error *Err) const {
+  ErrorAsOutParameter ErrAsOutParam(Err);
+  if (kind() != K_AIXBIG)
+    return new ArchiveMemberHeader(this, RawHeaderPtr, Size, Err);
+  else
----------------
Use `std::unique_ptr/std::make_unique` rather than `new` and raw pointers here.

Also, no need for `else` after `return`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D111889



More information about the llvm-commits mailing list