diff options
Diffstat (limited to 'core/java/android/content')
-rw-r--r-- | core/java/android/content/UndoManager.java | 6 | ||||
-rw-r--r-- | core/java/android/content/UndoOwner.java | 11 |
2 files changed, 11 insertions, 6 deletions
diff --git a/core/java/android/content/UndoManager.java b/core/java/android/content/UndoManager.java index e3bc238..559b01c 100644 --- a/core/java/android/content/UndoManager.java +++ b/core/java/android/content/UndoManager.java @@ -105,8 +105,7 @@ public class UndoManager { return owner; } - owner = new UndoOwner(tag); - owner.mManager = this; + owner = new UndoOwner(tag, this); owner.mData = data; mOwners.put(tag, owner); return owner; @@ -116,7 +115,6 @@ public class UndoManager { // XXX need to figure out how to prune. if (false) { mOwners.remove(owner.mTag); - owner.mManager = null; } } @@ -202,7 +200,7 @@ public class UndoManager { UndoOwner owner = mStateOwners[idx]; if (owner == null) { String tag = in.readString(); - owner = new UndoOwner(tag); + owner = new UndoOwner(tag, this); mStateOwners[idx] = owner; mOwners.put(tag, owner); } diff --git a/core/java/android/content/UndoOwner.java b/core/java/android/content/UndoOwner.java index d0cdc95..9106588 100644 --- a/core/java/android/content/UndoOwner.java +++ b/core/java/android/content/UndoOwner.java @@ -23,8 +23,8 @@ package android.content; */ public class UndoOwner { final String mTag; + final UndoManager mManager; - UndoManager mManager; Object mData; int mOpCount; @@ -32,8 +32,15 @@ public class UndoOwner { int mStateSeq; int mSavedIdx; - UndoOwner(String tag) { + UndoOwner(String tag, UndoManager manager) { + if (tag == null) { + throw new NullPointerException("tag can't be null"); + } + if (manager == null) { + throw new NullPointerException("manager can't be null"); + } mTag = tag; + mManager = manager; } /** |