Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Unified Diff: trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h

Issue 280023002: Revert 269414 "Changes to deletion/ownership of nodes in the cli..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h
===================================================================
--- trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h (revision 269420)
+++ trunk/src/mojo/services/public/cpp/view_manager/view_tree_node.h (working copy)
@@ -18,21 +18,19 @@
class ViewManager;
class ViewTreeNodeObserver;
-// ViewTreeNodes are owned by the ViewManager.
-// TODO(beng): Right now, you'll have to implement a ViewTreeNodeObserver to
-// track destruction and NULL any pointers you have.
-// Investigate some kind of smart pointer or weak pointer for these.
class ViewTreeNode {
public:
typedef std::vector<ViewTreeNode*> Children;
- static ViewTreeNode* Create(ViewManager* view_manager);
+ explicit ViewTreeNode(ViewManager* manager);
+ ViewTreeNode(); // Used for tests.
+ ~ViewTreeNode();
- // Destroys this node and all its children.
- void Destroy();
-
// Configuration.
TransportNodeId id() const { return id_; }
+ void set_owned_by_parent(bool owned_by_parent) {
+ owned_by_parent_ = owned_by_parent;
+ }
// Observation.
void AddObserver(ViewTreeNodeObserver* observer);
@@ -50,22 +48,15 @@
ViewTreeNode* GetChildById(TransportNodeId id);
- protected:
- // This class is subclassed only by test classes that provide a public ctor.
- ViewTreeNode();
- ~ViewTreeNode();
-
private:
friend class ViewTreeNodePrivate;
- explicit ViewTreeNode(ViewManager* manager);
-
- void LocalDestroy();
void LocalAddChild(ViewTreeNode* child);
void LocalRemoveChild(ViewTreeNode* child);
ViewManager* manager_;
TransportNodeId id_;
+ bool owned_by_parent_;
ViewTreeNode* parent_;
Children children_;

Powered by Google App Engine
This is Rietveld 408576698