diff --git a/modules/imgfmt/HGPnm.cpp b/modules/imgfmt/HGPnm.cpp index 18e284e5..92c58b1d 100644 --- a/modules/imgfmt/HGPnm.cpp +++ b/modules/imgfmt/HGPnm.cpp @@ -132,19 +132,14 @@ static HGResult BnmLoadP6Image(FILE* file, HGPnmLoadInfo* info, HGUInt imgType, HGImageInfo imgInfo; HGBase_GetImageInfo(image2, &imgInfo); - HGByte* buf = new HGByte[width * 3]; for (HGUInt i = 0; i < height; ++i) { - if (width * 3 != fread(buf, 1, width * 3, file)) + if (width * 3 != fread(data + i * imgInfo.widthStep, 1, width * 3, file)) { - delete[] buf; HGBase_DestroyImage(image2); return HGBASE_ERR_INVALIDDATA; } - - memcpy(data + i * imgInfo.widthStep, buf, width * 3); } - delete[] buf; ret = HGBase_CloneImage(image2, imgType, imgOrigin, image); HGBase_DestroyImage(image2);