Revert {Structure,Union}::getField to previous behavior

This commit is contained in:
Bruno Martins
2019-05-20 08:39:41 -04:00
committed by mdavidsaver
parent caa11605fc
commit b050fbbcbe
2 changed files with 23 additions and 4 deletions

View File

@@ -532,6 +532,15 @@ string Structure::getID() const
return id;
}
FieldConstPtr Structure::getField(string const & fieldName) const {
for(size_t i=0, N=fields.size(); i<N; i++) {
if(fieldName==fieldNames[i]) {
return fields[i];
}
}
return FieldConstPtr();
}
size_t Structure::getFieldIndex(string const &fieldName) const {
size_t numberFields = fields.size();
for(size_t i=0; i<numberFields; i++) {
@@ -750,6 +759,16 @@ string Union::getID() const
return id;
}
FieldConstPtr Union::getField(string const & fieldName) const {
size_t numberFields = fields.size();
for(size_t i=0; i<numberFields; i++) {
FieldConstPtr pfield = fields[i];
int result = fieldName.compare(fieldNames[i]);
if(result==0) return pfield;
}
return FieldConstPtr();
}
size_t Union::getFieldIndex(string const &fieldName) const {
size_t numberFields = fields.size();
for(size_t i=0; i<numberFields; i++) {

View File

@@ -719,7 +719,7 @@ public:
* @return The introspection interface.
* This will hold a null pointer if the field is not in the structure.
*/
FieldConstPtr getField(std::string const &fieldName) const {return getFieldImpl(fieldName, false);};
FieldConstPtr getField(std::string const &fieldName) const;
template<typename FT>
std::tr1::shared_ptr<const FT> getField(std::string const &fieldName) const
@@ -751,7 +751,7 @@ public:
* @return The introspection interface.
* This will hold a null pointer if the field is not in the structure.
*/
FieldConstPtr getField(std::size_t index) const {return getFieldImpl(index, false);}
const FieldConstPtr& getField(std::size_t index) const {return fields.at(index);}
template<typename FT>
std::tr1::shared_ptr<const FT> getField(std::size_t index) const
@@ -872,7 +872,7 @@ public:
* @return The introspection interface.
* This will hold a null pointer if the field is not in the union.
*/
FieldConstPtr getField(std::string const &fieldName) const {return getFieldImpl(fieldName, false);};
FieldConstPtr getField(std::string const &fieldName) const;
template<typename FT>
std::tr1::shared_ptr<const FT> getField(std::string const &fieldName) const
@@ -904,7 +904,7 @@ public:
* @return The introspection interface.
* This will hold a null pointer if the field is not in the union.
*/
FieldConstPtr getField(std::size_t index) const {return getFieldImpl(index, false);}
FieldConstPtr getField(std::size_t index) const {return fields.at(index);}
template<typename FT>
std::tr1::shared_ptr<const FT> getField(std::size_t index) const