forked from mirrors/gecko-dev
		
	 265e672179
			
		
	
	
		265e672179
		
	
	
	
	
		
			
			# ignore-this-changeset --HG-- extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #ifndef nsHtml5AttributeEntry_h
 | |
| #define nsHtml5AttributeEntry_h
 | |
| 
 | |
| #include "nsHtml5AttributeName.h"
 | |
| 
 | |
| class nsHtml5AttributeEntry final {
 | |
|  public:
 | |
|   nsHtml5AttributeEntry(nsHtml5AttributeName* aName, nsHtml5String aValue,
 | |
|                         int32_t aLine)
 | |
|       : mLine(aLine), mValue(aValue) {
 | |
|     // Let's hope the compiler coalesces the following as appropriate.
 | |
|     mLocals[0] = aName->getLocal(0);
 | |
|     mLocals[1] = aName->getLocal(1);
 | |
|     mLocals[2] = aName->getLocal(2);
 | |
|     mPrefixes[0] = aName->getPrefix(0);
 | |
|     mPrefixes[1] = aName->getPrefix(1);
 | |
|     mPrefixes[2] = aName->getPrefix(2);
 | |
|     mUris[0] = aName->getUri(0);
 | |
|     mUris[1] = aName->getUri(1);
 | |
|     mUris[2] = aName->getUri(2);
 | |
|   }
 | |
| 
 | |
|   // Isindex-only so doesn't need to deal with SVG and MathML
 | |
|   nsHtml5AttributeEntry(nsAtom* aName, nsHtml5String aValue, int32_t aLine)
 | |
|       : mLine(aLine), mValue(aValue) {
 | |
|     // Let's hope the compiler coalesces the following as appropriate.
 | |
|     mLocals[0] = aName;
 | |
|     mLocals[1] = aName;
 | |
|     mLocals[2] = aName;
 | |
|     mPrefixes[0] = nullptr;
 | |
|     mPrefixes[1] = nullptr;
 | |
|     mPrefixes[2] = nullptr;
 | |
|     mUris[0] = kNameSpaceID_None;
 | |
|     mUris[1] = kNameSpaceID_None;
 | |
|     mUris[2] = kNameSpaceID_None;
 | |
|   }
 | |
| 
 | |
|   inline nsAtom* GetLocal(int32_t aMode) { return mLocals[aMode]; }
 | |
| 
 | |
|   inline nsAtom* GetPrefix(int32_t aMode) { return mPrefixes[aMode]; }
 | |
| 
 | |
|   inline int32_t GetUri(int32_t aMode) { return mUris[aMode]; }
 | |
| 
 | |
|   inline nsHtml5String GetValue() { return mValue; }
 | |
| 
 | |
|   inline int32_t GetLine() { return mLine; }
 | |
| 
 | |
|   inline void ReleaseValue() { mValue.Release(); }
 | |
| 
 | |
|   inline nsHtml5AttributeEntry Clone() {
 | |
|     // Copy the memory
 | |
|     nsHtml5AttributeEntry clone(*this);
 | |
|     // Increment refcount for value
 | |
|     clone.mValue = this->mValue.Clone();
 | |
|     return clone;
 | |
|   }
 | |
| 
 | |
|  private:
 | |
|   RefPtr<nsAtom> mLocals[3];
 | |
|   RefPtr<nsAtom> mPrefixes[3];
 | |
|   int32_t mUris[3];
 | |
|   int32_t mLine;
 | |
|   nsHtml5String mValue;
 | |
| };
 | |
| 
 | |
| #endif  // nsHtml5AttributeEntry_h
 |