From: Benjamin Kramer Date: Tue, 4 Mar 2014 16:42:46 +0000 (+0000) Subject: [C++11] Make StoredDeclsList move-only. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2f369953b1da1ec3ab982965bae8ad5141728dae;p=clang [C++11] Make StoredDeclsList move-only. It is only moved when a StoredDeclsMap grows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202859 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/DeclContextInternals.h b/include/clang/AST/DeclContextInternals.h index 9c626c80aa..f85cea5016 100644 --- a/include/clang/AST/DeclContextInternals.h +++ b/include/clang/AST/DeclContextInternals.h @@ -46,10 +46,8 @@ struct StoredDeclsList { public: StoredDeclsList() {} - StoredDeclsList(const StoredDeclsList &RHS) : Data(RHS.Data) { - if (DeclsTy *RHSVec = RHS.getAsVector()) - Data = DeclsAndHasExternalTy(new DeclsTy(*RHSVec), - RHS.hasExternalDecls()); + StoredDeclsList(StoredDeclsList &&RHS) : Data(RHS.Data) { + RHS.Data = (NamedDecl *)0; } ~StoredDeclsList() { @@ -58,12 +56,11 @@ public: delete Vector; } - StoredDeclsList &operator=(const StoredDeclsList &RHS) { + StoredDeclsList &operator=(StoredDeclsList &&RHS) { if (DeclsTy *Vector = getAsVector()) delete Vector; Data = RHS.Data; - if (DeclsTy *RHSVec = RHS.getAsVector()) - Data = DeclsAndHasExternalTy(new DeclsTy(*RHSVec), hasExternalDecls()); + RHS.Data = (NamedDecl *)0; return *this; }