зеркало из https://github.com/microsoft/clang-1.git
don't new[] an empty array when an AttributeList has
zero expression arguments. This eliminates 2579 1-byte mallocs when parsing Cocoa.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
e2f0e96e9b
Коммит
005b235fbc
|
@ -16,13 +16,17 @@ using namespace clang;
|
|||
|
||||
AttributeList::AttributeList(IdentifierInfo *aName, SourceLocation aLoc,
|
||||
IdentifierInfo *pName, SourceLocation pLoc,
|
||||
Action::ExprTy **elist, unsigned numargs,
|
||||
Action::ExprTy **ExprList, unsigned numArgs,
|
||||
AttributeList *n)
|
||||
: AttrName(aName), AttrLoc(aLoc), ParmName(pName), ParmLoc(pLoc),
|
||||
NumArgs(numargs), Next(n) {
|
||||
Args = new Action::ExprTy*[numargs];
|
||||
for (unsigned i = 0; i != numargs; ++i)
|
||||
Args[i] = elist[i];
|
||||
NumArgs(numArgs), Next(n) {
|
||||
|
||||
if (numArgs == 0)
|
||||
Args = 0;
|
||||
else {
|
||||
Args = new Action::ExprTy*[numArgs];
|
||||
memcpy(Args, ExprList, numArgs*sizeof(Args[0]));
|
||||
}
|
||||
}
|
||||
|
||||
AttributeList::~AttributeList() {
|
||||
|
|
Загрузка…
Ссылка в новой задаче