michael@0: // Test04.cpp michael@0: michael@0: #include "nsIDOMNode.h" michael@0: #include "nsCOMPtr.h" michael@0: michael@0: NS_DEF_PTR(nsIDOMNode); michael@0: michael@0: /* michael@0: Windows: michael@0: nsCOMPtr 13 michael@0: raw 36 michael@0: michael@0: Macintosh: michael@0: nsCOMPtr 36 bytes (1.0000) michael@0: raw 120 (3.3333) i.e., 333.33% bigger than nsCOMPtr michael@0: */ michael@0: michael@0: class Test04_Raw michael@0: { michael@0: public: michael@0: Test04_Raw(); michael@0: ~Test04_Raw(); michael@0: michael@0: void /*nsresult*/ SetNode( nsIDOMNode* newNode ); michael@0: michael@0: private: michael@0: nsIDOMNode* mNode; michael@0: }; michael@0: michael@0: Test04_Raw::Test04_Raw() michael@0: : mNode(0) michael@0: { michael@0: // nothing else to do here michael@0: } michael@0: michael@0: Test04_Raw::~Test04_Raw() michael@0: { michael@0: NS_IF_RELEASE(mNode); michael@0: } michael@0: michael@0: void // nsresult michael@0: Test04_Raw::SetNode( nsIDOMNode* newNode ) michael@0: // m120, w36 michael@0: { michael@0: NS_IF_ADDREF(newNode); michael@0: NS_IF_RELEASE(mNode); michael@0: mNode = newNode; michael@0: michael@0: // return NS_OK; michael@0: } michael@0: michael@0: michael@0: michael@0: class Test04_nsCOMPtr michael@0: { michael@0: public: michael@0: void /*nsresult*/ SetNode( nsIDOMNode* newNode ); michael@0: michael@0: private: michael@0: nsCOMPtr mNode; michael@0: }; michael@0: michael@0: void // nsresult michael@0: Test04_nsCOMPtr::SetNode( nsIDOMNode* newNode ) michael@0: // m36, w13/13 michael@0: { michael@0: mNode = newNode; michael@0: }