Cleaned up Atom attribues some more. Added lots of doxygen comments
llvm-svn: 147105
diff --git a/lld/lib/Core/YamlReader.cpp b/lld/lib/Core/YamlReader.cpp
index c95e061..6250939 100644
--- a/lld/lib/Core/YamlReader.cpp
+++ b/lld/lib/Core/YamlReader.cpp
@@ -238,7 +238,8 @@
class YAMLAtom : public Atom {
public:
- YAMLAtom( Definition d
+ YAMLAtom( uint64_t ord
+ , Definition d
, Scope s
, ContentType ct
, SectionChoice sc
@@ -247,18 +248,18 @@
, bool tb
, bool al
, Alignment a
- , YAMLFile *f
+ , YAMLFile& f
, const char *n)
- : Atom(d, s, ct, sc, intn, dsk, tb, al, a)
+ : Atom(ord, d, s, ct, sc, intn, dsk, tb, al, a)
, _file(f)
, _name(n)
, _size(0)
- , _refStartIndex(f->_lastRefIndex)
- , _refEndIndex(f->_references.size()) {
- f->_lastRefIndex = _refEndIndex;
+ , _refStartIndex(f._lastRefIndex)
+ , _refEndIndex(f._references.size()) {
+ f._lastRefIndex = _refEndIndex;
}
- virtual const class File *file() const {
+ virtual const class File& file() const {
return _file;
}
@@ -282,7 +283,7 @@
virtual Reference::iterator referencesBegin() const;
virtual Reference::iterator referencesEnd() const;
private:
- YAMLFile *_file;
+ YAMLFile& _file;
const char *_name;
unsigned long _size;
unsigned int _refStartIndex;
@@ -290,14 +291,14 @@
};
Reference::iterator YAMLAtom::referencesBegin() const {
- if (_file->_references.size() < _refStartIndex)
- return (Reference::iterator)&_file->_references[_refStartIndex];
+ if (_file._references.size() < _refStartIndex)
+ return (Reference::iterator)&_file._references[_refStartIndex];
return 0;
}
Reference::iterator YAMLAtom::referencesEnd() const {
- if (_file->_references.size() < _refEndIndex)
- return (Reference::iterator)&_file->_references[_refEndIndex];
+ if (_file._references.size() < _refEndIndex)
+ return (Reference::iterator)&_file._references[_refEndIndex];
return 0;
}
@@ -316,9 +317,10 @@
void setFixupTarget(const char *n);
void addFixup(YAMLFile *f);
- void makeAtom(YAMLFile *);
+ void makeAtom(YAMLFile&);
private:
+ uint64_t _ordinal;
const char *_name;
Atom::Alignment _align;
Atom::ContentType _type;
@@ -334,7 +336,8 @@
};
YAMLAtomState::YAMLAtomState()
- : _name(NULL)
+ : _ordinal(0)
+ , _name(NULL)
, _align(0, 0)
, _type(Atom::typeData)
, _scope(Atom::scopeGlobal)
@@ -349,13 +352,14 @@
_ref.flags = 0;
}
-void YAMLAtomState::makeAtom(YAMLFile *f) {
- Atom *a = new YAMLAtom(_def, _scope, _type, _sectionChoice,
+void YAMLAtomState::makeAtom(YAMLFile& f) {
+ Atom *a = new YAMLAtom(_ordinal, _def, _scope, _type, _sectionChoice,
_internalName, _dontDeadStrip, _thumb, _alias,
_align, f, _name);
- f->_atoms.push_back(a);
-
+ f._atoms.push_back(a);
+ ++_ordinal;
+
// reset state for next atom
_name = NULL;
_align.powerOf2 = 0;
@@ -472,7 +476,7 @@
if (entry->beginDocument) {
if (file != NULL) {
if (haveAtom) {
- atomState.makeAtom(file);
+ atomState.makeAtom(*file);
haveAtom = false;
}
result.push_back(file);
@@ -502,7 +506,7 @@
if (depthForAtoms == entry->depth) {
if (entry->beginSequence) {
if (haveAtom) {
- atomState.makeAtom(file);
+ atomState.makeAtom(*file);
haveAtom = false;
}
}
@@ -546,7 +550,7 @@
lastDepth = entry->depth;
}
if (haveAtom) {
- atomState.makeAtom(file);
+ atomState.makeAtom(*file);
}
result.push_back(file);