mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
265e672179
# ignore-this-changeset --HG-- extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
71 lines
2.1 KiB
C++
71 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
|