r202859 - [C++11] Make StoredDeclsList move-only.

Benjamin Kramer benny.kra at googlemail.com
Tue Mar 4 08:42:47 PST 2014


Author: d0k
Date: Tue Mar  4 10:42:46 2014
New Revision: 202859

URL: http://llvm.org/viewvc/llvm-project?rev=202859&view=rev
Log:
[C++11] Make StoredDeclsList move-only.

It is only moved when a StoredDeclsMap grows.

Modified:
    cfe/trunk/include/clang/AST/DeclContextInternals.h

Modified: cfe/trunk/include/clang/AST/DeclContextInternals.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclContextInternals.h?rev=202859&r1=202858&r2=202859&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/DeclContextInternals.h (original)
+++ cfe/trunk/include/clang/AST/DeclContextInternals.h Tue Mar  4 10:42:46 2014
@@ -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;
   }
 





More information about the cfe-commits mailing list