| 224 | } |
| 225 | |
| 226 | static Status TF_StringDecode_Impl(const char* src, size_t src_len, |
| 227 | const char** dst, size_t* dst_len) { |
| 228 | tensorflow::uint64 len64 = 0; |
| 229 | const char* p = tensorflow::core::GetVarint64Ptr(src, src + src_len, &len64); |
| 230 | if (p == nullptr) { |
| 231 | return InvalidArgument("invalid string encoding or truncated src buffer"); |
| 232 | } |
| 233 | if (len64 > std::numeric_limits<size_t>::max()) { |
| 234 | return InvalidArgument("encoded string is ", len64, |
| 235 | "-bytes, which is too large for this architecture"); |
| 236 | } |
| 237 | *dst = p; |
| 238 | *dst_len = static_cast<size_t>(len64); |
| 239 | return Status::OK(); |
| 240 | } |
| 241 | |
| 242 | size_t TF_StringDecode(const char* src, size_t src_len, const char** dst, |
| 243 | size_t* dst_len, TF_Status* status) { |
no test coverage detected