Be a bit more consistent about using ErrorOr when constructing Binary objects.
[oota-llvm.git] / lib / Object / Archive.cpp
index 3c9eda74b52c0c8abd7aa15d70d192c8163f0781..286e9eebab3b12ff601dbffe91ca6b5e92ac6597 100644 (file)
@@ -194,6 +194,14 @@ error_code Archive::Child::getAsBinary(OwningPtr<Binary> &Result) const {
   return object_error::success;
 }
 
+ErrorOr<Archive*> Archive::create(MemoryBuffer *Source) {
+  error_code EC;
+  OwningPtr<Archive> Ret(new Archive(Source, EC));
+  if (EC)
+    return EC;
+  return Ret.take();
+}
+
 Archive::Archive(MemoryBuffer *source, error_code &ec)
   : Binary(Binary::ID_Archive, source), SymbolTable(child_end()) {
   // Check for sufficient magic.