Skip to content

Commit cf7dcda

Browse files
committed
Fix amount of data being sent for compressed arrays
1 parent 919caf1 commit cf7dcda

1 file changed

Lines changed: 17 additions & 7 deletions

File tree

ADApp/ntndArrayConverterSrc/ntndArrayConverterPvxs.cpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -357,13 +357,23 @@ void NTNDArrayConverterPvxs::fromValue(NDArray *src) {
357357
m_value["compressedSize"] = src->compressedSize;
358358
m_value["uncompressedSize"] = arrayInfo.totalBytes;
359359

360-
std::string fieldName = m_fieldNameMap[typeid(dataType)];
361-
auto val = shared_array<dataType>(
362-
(dataType*)src->pData,
363-
// custom deletor
364-
freeNDArray<dataType>(src),
365-
arrayInfo.nElements);
366-
m_value[fieldName] = val.freeze();
360+
if (src->codec.empty()) {
361+
std::string fieldName = m_fieldNameMap[typeid(dataType)];
362+
auto val = shared_array<dataType>(
363+
(dataType*)src->pData,
364+
// custom deletor
365+
freeNDArray<dataType>(src),
366+
arrayInfo.nElements);
367+
m_value[fieldName] = val.freeze();
368+
} else {
369+
std::string fieldName = m_fieldNameMap[typeid(uint8_t)];
370+
auto val = shared_array<uint8_t>(
371+
(uint8_t*)src->pData,
372+
// custom deletor
373+
freeNDArray<uint8_t>(src),
374+
(size_t)src->compressedSize);
375+
m_value[fieldName] = val.freeze();
376+
}
367377

368378
m_value["codec.name"] = src->codec.name; // compression codec
369379
// The uncompressed data type would be lost when converting to NTNDArray,

0 commit comments

Comments
 (0)