home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / UnzpHist.zip / History.314 < prev    next >
Text File  |  1990-08-30  |  2KB  |  38 lines

  1. *********************************
  2. v3.14 BETA, 30 Aug 90 (or thereabouts)
  3.  
  4. Date: Wed, 29 Aug 90 18:27:21 EDT
  5. From: Larry Jones <sdrc!scjones%thor@uunet.UU.NET>
  6. To: uunet!wsmr-simtel20.army.mil!info-zip@uunet.UU.NET
  7. Subject: Patches to eliminate zmemcpy and zmemset
  8.  
  9. Well, I finally got around to fixing the problem that required
  10. zmemcpy on most systems.  The problem is that memcpy is (or at
  11. least should be) a highly optimized routine for moving chunks
  12. of memory around at very high speeds.  In order to do this, it
  13. makes no guarantees about what happens if the source and
  14. destination overlap.  Unfortunately, the unimplod logic calls
  15. it with the source and destination overlapping most of the
  16. time, expecting it to move one byte at a time from left to
  17. right.  If your system's memcmp is optimized at all, there is
  18. very little chance of this happening.
  19.  
  20. So, what I did was to put the byte-at-a-time copy code in-line
  21. in unimplod.c rather than call zmemcmp.  Then, since all of
  22. of the other calls to zmemcmp and zmemset should be OK, I
  23. changed them back to just memcmp and memset.  Then I
  24. removed the ZMEM defines from unzip.h, removed all of the
  25. -DZMEM and related stuff from the makefile, and changed the
  26. names of the functions in zmemcpy.c and zmemset.c to just
  27. memcpy and memset so if anyone is completely missing these
  28. functions they'll be able to use ours.  I also tweaked the
  29. code a little to be more in line with the standard definitions
  30. of these functions.  Also, I did some cleanup in the make file
  31. to collapse the systems which were only different in whether
  32. they need ZMEM or not and to avoid the recursive make for the
  33. simplest cases.
  34.  
  35. The diffs (to 3.11) follow:
  36. [extracted and posted]
  37.  
  38.