X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/f57a1abfff018977638649483e0bf259c830daf2..aaa29c28ae45afad21be2891d38744d68d3c907e:/sig/copy.cpp diff --git a/sig/copy.cpp b/sig/copy.cpp index 63b72fe..8896ea8 100644 --- a/sig/copy.cpp +++ b/sig/copy.cpp @@ -85,6 +85,20 @@ Object *Object::Copy(CYPool &pool, const char *rename) const { } #endif +Enum *Enum::Copy(CYPool &pool, const char *rename) const { + if (rename == NULL) + rename = pool.strdup(name); + else if (rename[0] == '\0') + rename = NULL; + Enum *copy(new(pool) Enum(*type.Copy(pool), count, rename)); + copy->constants = new(pool) Constant[count]; + for (size_t i(0); i != count; ++i) { + copy->constants[i].name = pool.strdup(constants[i].name); + copy->constants[i].value = constants[i].value; + } + return copy; +} + Aggregate *Aggregate::Copy(CYPool &pool, const char *rename) const { if (rename == NULL) rename = pool.strdup(name); @@ -136,6 +150,10 @@ const char *Type::GetName() const { return NULL; } +const char *Enum::GetName() const { + return name; +} + const char *Aggregate::GetName() const { return name; }