Remove object_error::success and use std::error_code() instead

make_error_code(object_error) is slow because object::object_category()
uses a ManagedStatic variable. But the real problem is that the function is
called too frequently. This patch uses std::error_code() instead of
object_error::success. In most cases, we return "success", so this patch
reduces number of function calls to that function.

http://reviews.llvm.org/D10333



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239409 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rui Ueyama
2015-06-09 15:20:42 +00:00
parent c154887856
commit eae4673c2f
19 changed files with 125 additions and 126 deletions

View File

@ -224,7 +224,7 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec)
child_iterator e = child_end();
if (i == e) {
ec = object_error::success;
ec = std::error_code();
return;
}
@ -254,7 +254,7 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec)
SymbolTable = i;
++i;
FirstRegular = i;
ec = object_error::success;
ec = std::error_code();
return;
}
@ -298,14 +298,14 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec)
StringTable = i;
++i;
FirstRegular = i;
ec = object_error::success;
ec = std::error_code();
return;
}
if (Name[0] != '/') {
Format = has64SymTable ? K_MIPS64 : K_GNU;
FirstRegular = i;
ec = object_error::success;
ec = std::error_code();
return;
}
@ -320,7 +320,7 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec)
++i;
if (i == e) {
FirstRegular = i;
ec = object_error::success;
ec = std::error_code();
return;
}
@ -332,7 +332,7 @@ Archive::Archive(MemoryBufferRef Source, std::error_code &ec)
}
FirstRegular = i;
ec = object_error::success;
ec = std::error_code();
}
Archive::child_iterator Archive::child_begin(bool SkipInternal) const {