X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/a109809e4f9d66ad37afebd1eacd247c47e63f2e..9d063d4a44915aa9a38c372b7113efe48f927924:/sig/copy.cpp diff --git a/sig/copy.cpp b/sig/copy.cpp index d00a869..63b72fe 100644 --- a/sig/copy.cpp +++ b/sig/copy.cpp @@ -1,5 +1,5 @@ -/* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2015 Jay Freeman (saurik) +/* Cycript - The Truly Universal Scripting Language + * Copyright (C) 2009-2016 Jay Freeman (saurik) */ /* GNU Affero General Public License, Version 3 {{{ */ @@ -57,6 +57,7 @@ String *String::Copy(CYPool &pool, const char *rename) const { return new(pool) String(); } +#ifdef CY_OBJECTIVEC Meta *Meta::Copy(CYPool &pool, const char *rename) const { return new(pool) Meta(); } @@ -64,6 +65,7 @@ Meta *Meta::Copy(CYPool &pool, const char *rename) const { Selector *Selector::Copy(CYPool &pool, const char *rename) const { return new(pool) Selector(); } +#endif Bits *Bits::Copy(CYPool &pool, const char *rename) const { return new(pool) Bits(size); @@ -77,12 +79,18 @@ Array *Array::Copy(CYPool &pool, const char *rename) const { return new(pool) Array(*type.Copy(pool), size); } +#ifdef CY_OBJECTIVEC Object *Object::Copy(CYPool &pool, const char *rename) const { return new(pool) Object(pool.strdup(name)); } +#endif Aggregate *Aggregate::Copy(CYPool &pool, const char *rename) const { - Aggregate *copy(new(pool) Aggregate(overlap, rename ?: pool.strdup(name))); + if (rename == NULL) + rename = pool.strdup(name); + else if (rename[0] == '\0') + rename = NULL; + Aggregate *copy(new(pool) Aggregate(overlap, rename)); sig::Copy(pool, copy->signature, signature); return copy; } @@ -93,11 +101,13 @@ Function *Function::Copy(CYPool &pool, const char *rename) const { return copy; } +#ifdef CY_OBJECTIVEC Block *Block::Copy(CYPool &pool, const char *rename) const { Block *copy(new(pool) Block()); sig::Copy(pool, copy->signature, signature); return copy; } +#endif void Copy(CYPool &pool, ffi_type &lhs, ffi_type &rhs) { lhs.size = rhs.size;