forked from mirrors/gecko-dev
		
	 6f45c666bc
			
		
	
	
		6f45c666bc
		
	
	
	
	
		
			
			# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D14595 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			94 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Test03.cpp
 | |
| 
 | |
| #include "nsINode.h"
 | |
| #include "nsCOMPtr.h"
 | |
| #include "nsString.h"
 | |
| 
 | |
| NS_DEF_PTR(nsINode);
 | |
| 
 | |
| /*
 | |
|         Windows:
 | |
|                 nsCOMPtr_optimized*
 | |
|    45 raw_optimized
 | |
|    48 nsCOMPtr_optimized
 | |
|    50 nsCOMPtr
 | |
|    54 nsCOMPtr*
 | |
|    59 raw
 | |
|    62
 | |
| 
 | |
|         Macintosh:
 | |
|                 nsCOMPtr_optimized		112
 | |
|    (1.0000)
 | |
|                 raw_optimized					124 bytes
 | |
|    (1.1071)	i.e., 10.71% bigger than nsCOMPtr_optimized nsCOMPtr
 | |
|    144					(1.2857)
 | |
| */
 | |
| 
 | |
| void  // nsresult
 | |
| Test03_raw(nsINode* aDOMNode, nsString* aResult)
 | |
| // m140, w62
 | |
| {
 | |
|   // -- the following code is assumed, but is commented out so we compare only
 | |
|   //		 the relevent generated code
 | |
| 
 | |
|   //		if ( !aDOMNode || !aResult )
 | |
|   //			return NS_ERROR_NULL_POINTER;
 | |
| 
 | |
|   nsINode* parent = 0;
 | |
|   nsresult status = aDOMNode->GetParentNode(&parent);
 | |
| 
 | |
|   if (NS_SUCCEEDED(status)) {
 | |
|     parent->GetNodeName(*aResult);
 | |
|   }
 | |
| 
 | |
|   NS_IF_RELEASE(parent);
 | |
| 
 | |
|   //		return status;
 | |
| }
 | |
| 
 | |
| void  // nsresult
 | |
| Test03_raw_optimized(nsINode* aDOMNode, nsString* aResult)
 | |
| // m124, w48
 | |
| {
 | |
|   //		if ( !aDOMNode || !aResult )
 | |
|   //			return NS_ERROR_NULL_POINTER;
 | |
| 
 | |
|   nsINode* parent;
 | |
|   nsresult status = aDOMNode->GetParentNode(&parent);
 | |
| 
 | |
|   if (NS_SUCCEEDED(status)) {
 | |
|     parent->GetNodeName(*aResult);
 | |
|     NS_RELEASE(parent);
 | |
|   }
 | |
| 
 | |
|   //		return status;
 | |
| }
 | |
| 
 | |
| void  // nsresult
 | |
| Test03_nsCOMPtr(nsINode* aDOMNode, nsString* aResult)
 | |
| // m144, w54/59
 | |
| {
 | |
|   //		if ( !aDOMNode || !aResult )
 | |
|   //			return NS_ERROR_NULL_POINTER;
 | |
| 
 | |
|   nsCOMPtr<nsINode> parent;
 | |
|   nsresult status = aDOMNode->GetParentNode(getter_AddRefs(parent));
 | |
|   if (parent) parent->GetNodeName(*aResult);
 | |
| 
 | |
|   //		return status;
 | |
| }
 | |
| 
 | |
| void  // nsresult
 | |
| Test03_nsCOMPtr_optimized(nsINode* aDOMNode, nsString* aResult)
 | |
| // m112, w50/45
 | |
| {
 | |
|   //		if ( !aDOMNode || !aResult )
 | |
|   //			return NS_ERROR_NULL_POINTER;
 | |
| 
 | |
|   nsINode* temp;
 | |
|   nsresult status = aDOMNode->GetParentNode(&temp);
 | |
|   nsCOMPtr<nsINode> parent(dont_AddRef(temp));
 | |
|   if (parent) parent->GetNodeName(*aResult);
 | |
| 
 | |
|   //		return status;
 | |
| }
 |