Back to index

lightning-sunbird  0.9+nobinonly
SizeTest04.cpp
Go to the documentation of this file.
00001 // Test04.cpp
00002 
00003 #include "nsIDOMNode.h"
00004 #include "nsCOMPtr.h"
00005 
00006 #ifdef __MWERKS__
00007        #pragma exceptions off
00008 #endif
00009 
00010 NS_DEF_PTR(nsIDOMNode);
00011 
00012        /*
00013               Windows:
00014                      nsCOMPtr                                                 13
00015                      raw                                                                    36
00016 
00017               Macintosh:
00018                      nsCOMPtr                                                 36 bytes            (1.0000)
00019                      raw                                                                   120                                (3.3333)      i.e., 333.33% bigger than nsCOMPtr
00020        */
00021 
00022 class Test04_Raw
00023        {
00024               public:
00025                      Test04_Raw();
00026                ~Test04_Raw();
00027 
00028                      void /*nsresult*/ SetNode( nsIDOMNode* newNode );
00029 
00030               private:
00031                      nsIDOMNode* mNode;
00032        };
00033 
00034 Test04_Raw::Test04_Raw()
00035               : mNode(0)
00036        {
00037               // nothing else to do here
00038        }
00039 
00040 Test04_Raw::~Test04_Raw()
00041        {
00042               NS_IF_RELEASE(mNode);
00043        }
00044 
00045 void // nsresult
00046 Test04_Raw::SetNode( nsIDOMNode* newNode )
00047               // m120, w36
00048        {
00049               NS_IF_ADDREF(newNode);
00050               NS_IF_RELEASE(mNode);
00051               mNode = newNode;
00052 
00053 //            return NS_OK;
00054        }
00055 
00056 
00057 
00058 class Test04_nsCOMPtr
00059        {
00060               public:
00061                      void /*nsresult*/ SetNode( nsIDOMNode* newNode );
00062 
00063               private:
00064                      nsCOMPtr<nsIDOMNode> mNode;
00065        };
00066 
00067 void // nsresult
00068 Test04_nsCOMPtr::SetNode( nsIDOMNode* newNode )
00069               // m36, w13/13
00070        {
00071               mNode = newNode;
00072        }