Ignore:
Timestamp:
Jul 12, 2015, 12:10:59 AM (4 years ago)
Author:
nmedfort
Message:

Moved 'resolveProperties' into CC_NameMap as a single call for each unique Name.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/re/re_name.h

    r4516 r4660  
    3131    std::string getNamespace() const;
    3232    std::string getName() const;
    33     void setName(const std::string &);
     33    void setFunctionName(const std::string &);
     34    std::string getFunctionName() const;
     35
    3436    Type getType() const;
    3537    RE *getDefinition() const;
     
    5355    , mNameLength(nameLength)
    5456    , mName(replicateString(name, nameLength))
     57    , mFunctionNameLength(0)
     58    , mFunctionName(nullptr)
    5559    , mType(type)
    5660    , mDefiningRE(defn)
     
    6973
    7074private:
    71     length_t            mNamespaceLength;
    72     const char *        mNamespace;
    73     length_t            mNameLength;
    74     const char *        mName;
     75    const length_t      mNamespaceLength;
     76    const char * const  mNamespace;
     77    const length_t      mNameLength;
     78    const char * const  mName;
     79    length_t            mFunctionNameLength;
     80    const char *        mFunctionName;
    7581    const Type          mType;
    7682    RE *                mDefiningRE;
     
    8692}
    8793
    88 inline void Name::setName(const std::string & n) {
    89     mNameLength = n.length();
    90     mName = replicateString(n.c_str(), n.length());
     94inline std::string Name::getFunctionName() const {
     95    return std::string(mFunctionName, mFunctionNameLength);
     96}
     97
     98inline void Name::setFunctionName(const std::string & n) {
     99    mFunctionNameLength = n.length();
     100    mFunctionName = replicateString(n.c_str(), n.length());
    91101}
    92102   
     
    103113}
    104114
    105 inline Name * makeName(const std::string & name, const Name::Type type = Name::Type::Unicode) {
     115inline Name * makeName(const std::string & name, const Name::Type type) {
    106116    return new Name(nullptr, 0, name.c_str(), name.length(), type, nullptr);
    107117}
    108118
    109 inline Name * makeName(const std::string & property, const std::string & value, const Name::Type type = Name::Type::Unicode) {
     119inline Name * makeName(const std::string & property, const std::string & value, const Name::Type type) {
    110120    return new Name(property.c_str(), property.length(), value.c_str(), value.length(),  type, nullptr);
    111121}
Note: See TracChangeset for help on using the changeset viewer.