Index: content/browser/accessibility/browser_accessibility_mac.mm |
diff --git a/content/browser/accessibility/browser_accessibility_mac.mm b/content/browser/accessibility/browser_accessibility_mac.mm |
index 0725e913be5934ec5fc2f6e6365896b44091966b..11595a10e28b1838754f11b9be584899052ed8a8 100644 |
--- a/content/browser/accessibility/browser_accessibility_mac.mm |
+++ b/content/browser/accessibility/browser_accessibility_mac.mm |
@@ -37,17 +37,14 @@ void BrowserAccessibilityMac::PreInitialize() { |
} |
void BrowserAccessibilityMac::NativeReleaseReference() { |
- if (browser_accessibility_cocoa_) { |
- BrowserAccessibilityCocoa* temp = browser_accessibility_cocoa_; |
- browser_accessibility_cocoa_ = nil; |
- // Relinquish ownership of the cocoa obj. |
- [temp release]; |
- // At this point, other processes may have a reference to |
- // the cocoa object. When the retain count hits zero, it will |
- // destroy us in dealloc. |
- // For that reason, do *not* make any more calls here after |
- // as we might have been deleted. |
- } |
+ // Detach this object from |browser_accessibility_cocoa_| so it |
+ // no longer has a pointer to this object. |
+ [browser_accessibility_cocoa_ detach]; |
+ // Now, release it - but at this point, other processes may have a |
+ // reference to the cocoa object. |
+ [browser_accessibility_cocoa_ release]; |
+ // Finally, it's safe to delete this since we've detached. |
+ delete this; |
} |
bool BrowserAccessibilityMac::IsNative() const { |