diff --git a/libs/main/application/pisingleapplication.cpp b/libs/main/application/pisingleapplication.cpp index 217a1ba7..46e342e3 100644 --- a/libs/main/application/pisingleapplication.cpp +++ b/libs/main/application/pisingleapplication.cpp @@ -128,14 +128,12 @@ void PISingleApplication::run() { int st_[2] = {sacnt, sacnt}; shm->write(st_, 8); // piCoutObj << "write" << sacnt; + int ri[3] = {0, 0, 0}; const int hdr_sz = sizeof(int) * 3; - PIByteArray all(shm->size()); - shm->read(all.data(), all.size()); - int ri[3] = {0, 0, 0}; - memcpy(ri, all.data(), hdr_sz); + shm->read(ri, hdr_sz); if (ri[2] != 0 && ri[0] == ri[1]) { - readed.resize(all.size() - hdr_sz); - memcpy(readed.data(), all.data() + hdr_sz, readed.size()); + readed.resize(shm->size() - hdr_sz); + shm->read(readed.data(), readed.size(), hdr_sz); PIByteArray msg; readed >> msg; if (msg.isNotEmpty()) {