]> git.saurik.com Git - cycript.git/blobdiff - sig/copy.cpp
Analyze even more headers and added enum typedefs.
[cycript.git] / sig / copy.cpp
index 63b72fe25ed4e7dfd8bb2d60be881906e73cd7d1..8896ea84ffe471b18ba5a13d8757f42f666b66fd 100644 (file)
@@ -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;
 }