Back to index

lightning-sunbird  0.9+nobinonly
SizeTest06.cpp
Go to the documentation of this file.
00001 // Test06.cpp
00002 
00003 #include "nsIDOMWindowInternal.h"
00004 #include "nsIScriptGlobalObject.h"
00005 #include "nsIDocShell.h"
00006 #include "nsIBaseWindow.h"
00007 #include "nsCOMPtr.h"
00008 
00009 NS_DEF_PTR(nsIScriptGlobalObject);
00010 NS_DEF_PTR(nsIBaseWindow);
00011 
00012   /*
00013     Windows:
00014       nsCOMPtr_optimized           176
00015       nsCOMPtr_as_found            181
00016       nsCOMPtr_optimized*          182
00017       nsCOMPtr02*                  184
00018       nsCOMPtr02                   187
00019       nsCOMPtr02*                  188
00020       nsCOMPtr03                   189
00021       raw_optimized, nsCOMPtr00    191
00022       nsCOMPtr00*                  199
00023       nsCOMPtr_as_found*           201
00024       raw                          214
00025 
00026     Macintosh:
00027       nsCOMPtr_optimized           300    (1.0000)
00028       nsCOMPtr02                   320    (1.0667)  i.e., 6.67% bigger than nsCOMPtr_optimized
00029       nsCOMPtr00                   328    (1.0933)
00030       raw_optimized, nsCOMPtr03    332    (1.1067)
00031       nsCOMPtr_as_found            344    (1.1467)
00032       raw                          388    (1.2933)
00033 
00034   */
00035 
00036 
00037 void // nsresult
00038 Test06_raw(nsIDOMWindowInternal* aDOMWindow, nsIBaseWindow** aBaseWindow)
00039     // m388, w214
00040 {
00041 //  if (!aDOMWindow)
00042 //    return NS_ERROR_NULL_POINTER;
00043   nsIScriptGlobalObject* scriptGlobalObject = 0;
00044   nsresult status = aDOMWindow->QueryInterface(NS_GET_IID(nsIScriptGlobalObject), (void**)&scriptGlobalObject);
00045   nsIDocShell* docShell = 0;
00046   if (scriptGlobalObject)
00047     scriptGlobalObject->GetDocShell(&docShell);
00048   nsIWebShell* rootWebShell = 0;
00049   NS_IF_RELEASE(rootWebShell);
00050   NS_IF_RELEASE(docShell);
00051   NS_IF_RELEASE(scriptGlobalObject);
00052 //    return status;
00053 }
00054 
00055 void // nsresult
00056 Test06_raw_optimized(nsIDOMWindowInternal* aDOMWindow, nsIBaseWindow** aBaseWindow)
00057     // m332, w191
00058 {
00059 //  if (!aDOMWindow)
00060 //    return NS_ERROR_NULL_POINTER;
00061   (*aBaseWindow) = 0;
00062   nsIScriptGlobalObject* scriptGlobalObject;
00063   nsresult status = aDOMWindow->QueryInterface(NS_GET_IID(nsIScriptGlobalObject), (void**)&scriptGlobalObject);
00064   if (NS_SUCCEEDED(status)) {
00065     nsIDocShell* docShell = 0;
00066     scriptGlobalObject->GetDocShell(&docShell);
00067     if (docShell) {
00068       NS_RELEASE(docShell);
00069     }
00070     NS_RELEASE(scriptGlobalObject);
00071   }
00072 //  return status;
00073 }
00074 
00075 void
00076 Test06_nsCOMPtr_as_found(nsIDOMWindowInternal* aDOMWindow, nsCOMPtr<nsIBaseWindow>* aBaseWindow)
00077     // m344, w181/201
00078 {
00079 //  if (!aDOMWindow)
00080 //    return;
00081   nsCOMPtr<nsIScriptGlobalObject> scriptGlobalObject = do_QueryInterface(aDOMWindow);
00082   nsCOMPtr<nsIDocShell> docShell;
00083   if (scriptGlobalObject)
00084     scriptGlobalObject->GetDocShell(getter_AddRefs(docShell));  
00085 }
00086 
00087 void // nsresult
00088 Test06_nsCOMPtr00(nsIDOMWindowInternal* aDOMWindow, nsIBaseWindow** aBaseWindow)
00089     // m328, w191/199
00090 {
00091 //  if (!aDOMWindow)
00092 //    return NS_ERROR_NULL_POINTER;
00093   nsresult status;
00094   nsCOMPtr<nsIScriptGlobalObject> scriptGlobalObject = do_QueryInterface(aDOMWindow, &status);
00095   nsIDocShell* temp0 = 0;
00096   if (scriptGlobalObject)
00097     scriptGlobalObject->GetDocShell(&temp0);
00098   nsCOMPtr<nsIDocShell> docShell = dont_AddRef(temp0);
00099   (*aBaseWindow) = 0;
00100 //    return status;
00101 }
00102 
00103 void // nsresult
00104 Test06_nsCOMPtr_optimized(nsIDOMWindowInternal* aDOMWindow, nsCOMPtr<nsIBaseWindow>* aBaseWindow)
00105     // m300, w176/182
00106 {
00107 //    if (!aDOMWindow)
00108 //      return NS_ERROR_NULL_POINTER;
00109   nsresult status;
00110   nsCOMPtr<nsIScriptGlobalObject> scriptGlobalObject = do_QueryInterface(aDOMWindow, &status);
00111   nsIDocShell* temp0 = 0;
00112   if (scriptGlobalObject)
00113     scriptGlobalObject->GetDocShell(&temp0);
00114   (*aBaseWindow) = do_QueryInterface(nsnull, &status);
00115 //    return status;
00116 }
00117 
00118 void // nsresult
00119 Test06_nsCOMPtr02(nsIDOMWindowInternal* aDOMWindow, nsIBaseWindow** aBaseWindow)
00120     // m320, w187/184
00121 {
00122 //    if (!aDOMWindow)
00123 //      return NS_ERROR_NULL_POINTER;
00124   (*aBaseWindow) = 0;
00125   nsresult status;
00126   nsCOMPtr<nsIScriptGlobalObject> scriptGlobalObject = do_QueryInterface(aDOMWindow, &status);
00127   if (scriptGlobalObject) {
00128     nsIDocShell* temp0;
00129     scriptGlobalObject->GetDocShell(&temp0);
00130   }
00131 //    return status;
00132 }
00133 
00134 void // nsresult
00135 Test06_nsCOMPtr03(nsIDOMWindowInternal* aDOMWindow, nsCOMPtr<nsIBaseWindow>* aBaseWindow)
00136     // m332, w189/188
00137 {
00138 //    if (!aDOMWindow)
00139 //      return NS_ERROR_NULL_POINTER;
00140   (*aBaseWindow) = 0;
00141   nsresult status;
00142   nsCOMPtr<nsIScriptGlobalObject> scriptGlobalObject = do_QueryInterface(aDOMWindow, &status);
00143   if (scriptGlobalObject) {
00144     nsIDocShell* temp0;
00145     scriptGlobalObject->GetDocShell(&temp0);
00146     nsCOMPtr<nsIDocShell> docShell = dont_AddRef(temp0);
00147     if (docShell) {
00148     }
00149   }
00150 //    return status;
00151 }