Bug 853774 - RequestBehaviour must handle null owners. r=joe
--- a/image/src/imgRequestProxy.cpp
+++ b/image/src/imgRequestProxy.cpp
@@ -50,17 +50,22 @@ class RequestBehaviour : public ProxyBeh
virtual imgStatusTracker& GetStatusTracker() const MOZ_OVERRIDE;
virtual imgRequest* GetOwner() const MOZ_OVERRIDE {
return mOwner;
}
virtual void SetOwner(imgRequest* aOwner) MOZ_OVERRIDE {
mOwner = aOwner;
- mOwnerHasImage = !!aOwner->GetStatusTracker().GetImage();
+
+ if (mOwner) {
+ mOwnerHasImage = !!aOwner->GetStatusTracker().GetImage();
+ } else {
+ mOwnerHasImage = false;
+ }
}
private:
// We maintain the following invariant:
// The proxy is registered at most with a single imgRequest as an observer,
// and whenever it is, mOwner points to that object. This helps ensure that
// imgRequestProxy::~imgRequestProxy unregisters the proxy as an observer
// from whatever request it was registered with (if any). This, in turn,