" forKey: " << containerize(keyType, key) << "];" << endl;
if (type_can_be_null(keyType)) {
- indent(out) << "[" << containerize(keyType, key) << " release];" << endl;
+ if (!(get_true_type(keyType)->is_string())) {
+ indent(out) << "[" << containerize(keyType, key) << " release];" << endl;
+ }
}
if (type_can_be_null(valType)) {
- indent(out) << "[" << containerize(valType, val) << " release];" << endl;
+ if (!(get_true_type(valType)->is_string())) {
+ indent(out) << "[" << containerize(valType, val) << " release];" << endl;
+ }
}
}
"[" << fieldName << " addObject: " << containerize(type, elem) << "];" << endl;
if (type_can_be_null(type)) {
- indent(out) << "[" << containerize(type, elem) << " release];" << endl;
+ // deserialized strings are autorelease, so don't release them
+ if (!(get_true_type(type)->is_string())) {
+ indent(out) << "[" << containerize(type, elem) << " release];" << endl;
+ }
}
}
"[" << fieldName << " addObject: " << containerize(type, elem) << "];" << endl;
if (type_can_be_null(type)) {
- indent(out) << "[" << containerize(type, elem) << " release];" << endl;
+ if (!(get_true_type(type)->is_string())) {
+ indent(out) << "[" << containerize(type, elem) << " release];" << endl;
+ }
}
}