mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-11 10:08:41 +00:00
bug #12465: QueryInterface now creates an nsScriptableRegion instance, when queried for nsIScriptableRegion.
This commit is contained in:
parent
9cecbfb42e
commit
25883254da
@ -17,9 +17,9 @@
|
||||
*/
|
||||
|
||||
#include "nsRegionMac.h"
|
||||
#include "nsScriptableRegion.h"
|
||||
#include "prmem.h"
|
||||
|
||||
|
||||
NS_EXPORT nsNativeRegionPool sNativeRegionPool;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
@ -105,9 +105,6 @@ void nsNativeRegionPool::ReleaseRegion(RgnHandle aRgnHandle)
|
||||
|
||||
|
||||
#pragma mark -
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
static NS_DEFINE_IID(kRegionIID, NS_IREGION_IID);
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
@ -128,10 +125,35 @@ nsRegionMac::~nsRegionMac()
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMPL_QUERY_INTERFACE(nsRegionMac, kRegionIID);
|
||||
NS_IMPL_ADDREF(nsRegionMac);
|
||||
NS_IMPL_RELEASE(nsRegionMac);
|
||||
|
||||
NS_IMETHODIMP nsRegionMac::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if (aIID.Equals(NS_GET_IID(nsIRegion)) || aIID.Equals(NS_GET_IID(nsISupports))) {
|
||||
*aInstancePtr = (void*) this;
|
||||
NS_ADDREF_THIS();
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(NS_GET_IID(nsIScriptableRegion))) {
|
||||
nsScriptableRegion* scriptableRegion = new nsScriptableRegion(this);
|
||||
if (scriptableRegion != nsnull) {
|
||||
*aInstancePtr = (void*) scriptableRegion;
|
||||
NS_ADDREF(scriptableRegion);
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
nsresult nsRegionMac::Init(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user