Write<int>(len + 1);
std::copy(c, c + len + 1, std::back_inserter(data_));
+ free(r);
}
void Parcel::WriteArrayCount(int count) {
return Read<double>();
}
-std::string Parcel::ReadString() {
+const char* Parcel::ReadString() {
int l = Read<int>();
- std::string str(reinterpret_cast<const char*>(&data_[reader_]));
+ const char* str = reinterpret_cast<const char*>(&data_[reader_]);
reader_ += l;
return str;
bundle* Parcel::ReadBundle() {
int l = Read<int>();
- std::string str(reinterpret_cast<const char*>(&data_[reader_]));
+ const bundle_raw* str = reinterpret_cast<const bundle_raw*>(&data_[reader_]);
reader_ += l;
- bundle* b = bundle_decode(
- reinterpret_cast<const bundle_raw*>(str.c_str()), l - 1);
+ bundle* b = bundle_decode(str, l - 1);
return b;
}
int ret = rpc_port_parcel_read_string(h, &s);
ASSERT_EQ(ret, 0);
ASSERT_STREQ(s, "abcdef");
+ free(s);
double b;
ret = rpc_port_parcel_read_double(h, &b);