aboutsummaryrefslogtreecommitdiff
path: root/C/7zFile.c
diff options
context:
space:
mode:
authorIgor Pavlov <87184205+ip7z@users.noreply.github.com>2023-06-21 00:00:00 +0000
committerIgor Pavlov <87184205+ip7z@users.noreply.github.com>2023-12-17 14:59:19 +0500
commit5b39dc76f1bc82f941d5c800ab9f34407a06b53a (patch)
treefe5e17420300b715021a76328444088d32047963 /C/7zFile.c
parent93be7d4abfd4233228f58ee1fbbcd76d91be66a4 (diff)
download7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.gz
7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.tar.bz2
7zip-5b39dc76f1bc82f941d5c800ab9f34407a06b53a.zip
23.0123.01
Diffstat (limited to 'C/7zFile.c')
-rw-r--r--C/7zFile.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/C/7zFile.c b/C/7zFile.c
index 13d2efa..ba5daa1 100644
--- a/C/7zFile.c
+++ b/C/7zFile.c
@@ -1,5 +1,5 @@
1/* 7zFile.c -- File IO 1/* 7zFile.c -- File IO
22021-04-29 : Igor Pavlov : Public domain */ 22023-04-02 : Igor Pavlov : Public domain */
3 3
4#include "Precomp.h" 4#include "Precomp.h"
5 5
@@ -268,7 +268,7 @@ WRes File_Write(CSzFile *p, const void *data, size_t *size)
268 return errno; 268 return errno;
269 if (processed == 0) 269 if (processed == 0)
270 break; 270 break;
271 data = (void *)((Byte *)data + (size_t)processed); 271 data = (const void *)((const Byte *)data + (size_t)processed);
272 originalSize -= (size_t)processed; 272 originalSize -= (size_t)processed;
273 *size += (size_t)processed; 273 *size += (size_t)processed;
274 } 274 }
@@ -287,7 +287,8 @@ WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin)
287 DWORD moveMethod; 287 DWORD moveMethod;
288 UInt32 low = (UInt32)*pos; 288 UInt32 low = (UInt32)*pos;
289 LONG high = (LONG)((UInt64)*pos >> 16 >> 16); /* for case when UInt64 is 32-bit only */ 289 LONG high = (LONG)((UInt64)*pos >> 16 >> 16); /* for case when UInt64 is 32-bit only */
290 switch (origin) 290 // (int) to eliminate clang warning
291 switch ((int)origin)
291 { 292 {
292 case SZ_SEEK_SET: moveMethod = FILE_BEGIN; break; 293 case SZ_SEEK_SET: moveMethod = FILE_BEGIN; break;
293 case SZ_SEEK_CUR: moveMethod = FILE_CURRENT; break; 294 case SZ_SEEK_CUR: moveMethod = FILE_CURRENT; break;
@@ -308,7 +309,7 @@ WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin)
308 309
309 int moveMethod; // = origin; 310 int moveMethod; // = origin;
310 311
311 switch (origin) 312 switch ((int)origin)
312 { 313 {
313 case SZ_SEEK_SET: moveMethod = SEEK_SET; break; 314 case SZ_SEEK_SET: moveMethod = SEEK_SET; break;
314 case SZ_SEEK_CUR: moveMethod = SEEK_CUR; break; 315 case SZ_SEEK_CUR: moveMethod = SEEK_CUR; break;
@@ -387,10 +388,10 @@ WRes File_GetLength(CSzFile *p, UInt64 *length)
387 388
388/* ---------- FileSeqInStream ---------- */ 389/* ---------- FileSeqInStream ---------- */
389 390
390static SRes FileSeqInStream_Read(const ISeqInStream *pp, void *buf, size_t *size) 391static SRes FileSeqInStream_Read(ISeqInStreamPtr pp, void *buf, size_t *size)
391{ 392{
392 CFileSeqInStream *p = CONTAINER_FROM_VTBL(pp, CFileSeqInStream, vt); 393 Z7_CONTAINER_FROM_VTBL_TO_DECL_VAR_pp_vt_p(CFileSeqInStream)
393 WRes wres = File_Read(&p->file, buf, size); 394 const WRes wres = File_Read(&p->file, buf, size);
394 p->wres = wres; 395 p->wres = wres;
395 return (wres == 0) ? SZ_OK : SZ_ERROR_READ; 396 return (wres == 0) ? SZ_OK : SZ_ERROR_READ;
396} 397}
@@ -403,18 +404,18 @@ void FileSeqInStream_CreateVTable(CFileSeqInStream *p)
403 404
404/* ---------- FileInStream ---------- */ 405/* ---------- FileInStream ---------- */
405 406
406static SRes FileInStream_Read(const ISeekInStream *pp, void *buf, size_t *size) 407static SRes FileInStream_Read(ISeekInStreamPtr pp, void *buf, size_t *size)
407{ 408{
408 CFileInStream *p = CONTAINER_FROM_VTBL(pp, CFileInStream, vt); 409 Z7_CONTAINER_FROM_VTBL_TO_DECL_VAR_pp_vt_p(CFileInStream)
409 WRes wres = File_Read(&p->file, buf, size); 410 const WRes wres = File_Read(&p->file, buf, size);
410 p->wres = wres; 411 p->wres = wres;
411 return (wres == 0) ? SZ_OK : SZ_ERROR_READ; 412 return (wres == 0) ? SZ_OK : SZ_ERROR_READ;
412} 413}
413 414
414static SRes FileInStream_Seek(const ISeekInStream *pp, Int64 *pos, ESzSeek origin) 415static SRes FileInStream_Seek(ISeekInStreamPtr pp, Int64 *pos, ESzSeek origin)
415{ 416{
416 CFileInStream *p = CONTAINER_FROM_VTBL(pp, CFileInStream, vt); 417 Z7_CONTAINER_FROM_VTBL_TO_DECL_VAR_pp_vt_p(CFileInStream)
417 WRes wres = File_Seek(&p->file, pos, origin); 418 const WRes wres = File_Seek(&p->file, pos, origin);
418 p->wres = wres; 419 p->wres = wres;
419 return (wres == 0) ? SZ_OK : SZ_ERROR_READ; 420 return (wres == 0) ? SZ_OK : SZ_ERROR_READ;
420} 421}
@@ -428,10 +429,10 @@ void FileInStream_CreateVTable(CFileInStream *p)
428 429
429/* ---------- FileOutStream ---------- */ 430/* ---------- FileOutStream ---------- */
430 431
431static size_t FileOutStream_Write(const ISeqOutStream *pp, const void *data, size_t size) 432static size_t FileOutStream_Write(ISeqOutStreamPtr pp, const void *data, size_t size)
432{ 433{
433 CFileOutStream *p = CONTAINER_FROM_VTBL(pp, CFileOutStream, vt); 434 Z7_CONTAINER_FROM_VTBL_TO_DECL_VAR_pp_vt_p(CFileOutStream)
434 WRes wres = File_Write(&p->file, data, &size); 435 const WRes wres = File_Write(&p->file, data, &size);
435 p->wres = wres; 436 p->wres = wres;
436 return size; 437 return size;
437} 438}