?? changes
字號:
New in 1.20 1. Bugfix in except.h. Modified non-volatile auto variables were being accessed after longjmp.New in 1.19 1. Rewrite of broken dict_free. 2. Fixed embarassing build breakages that accidentally went into 1.18 3. Function hash_scan_delete_free renamed to hash_scan_delfree to be distinct from hash_scan_delete in the first 14 characters. 4. To resolve inconsistencies between hash_free and dict_free, and a difference between the actual behavior of hash_free and the documented behavior, these two functions are marked obsolescent. The functions dict_free_nodes and hash_free_nodes are provided. The obsolescent functions continue to work as before, for now. 5. Documentation of hash_free is fixed to say that it also subjects the hash to hash_destroy, which is what the implementation does. 6. Documentation states what release it is for.New in 1.18 1. Error in assert expression in list_merge fixed. 2. Semantics of list_merge extended to allow list to be merged onto itself (which is a noop). 3. Clarified interface specification of list_transfer and list_extract; the source and destination list may be the same object. 4. New functions: dict_init_like: create a dictionary similar to another one; dict_similar: determine whether two dictionaries are similar; dict_merge: merge contents of one dictionary to another. 5. Dictionary test main can juggle multiple dictionaries, and test dict_merge. 6. If a hash node is inserted into some hash, it is a now a constraint violation to insert it again into some hash. 7. The hash_scan_delete_free function has been implemented; it is to hash_scan_delete what hash_delete_free is to hash_delete.New in 1.17 Carl van Tast <vanTast@netway.at>: 1. Removed references to ``safe malloc'' from some comments. 2. Swapped ``allowed'' and ``not allowed'' in comment to verify_bintree. 3. Fixed comment to list_next: this function never returns the sentinel. 4. lnode_pool_init: nodes[i].prev = nodes instead of nodes + 1. This saves one or two CPU cycles :-) and it gives a valid address even if we have a (somewhat pathological) pool with just one element. Kaz: 5. Dropped extra parameter from tree rotation functions in dict.c. Should shave a few cycles. 6. Fixed error in the duplicate key iteration idiom example in the documentation (see the section on dict_upper_bound). 7. Forgotten #include <string.h> added to hash.cNew in 1.16 1. Added an interface for loading the contents of a dictionary from an ordered sequence. This is done in O(n) time by a direct bottom-up construction of the red-black tree, making it much faster than the O(n log n) process of inserting each element. 2. Miscellaneous cleanup: missing const qualifiers were added to key pointer parameters, some incorrect comments fixed; spelling errors corrected in documentation.New in 1.15 1. Another potential exception handling memory leak fixed. This one has to do with throwing an exception from within a try-catch region in which an exception was just caught. The new exception replaces the old without the old's dynamic memory being disposed of. 2. Restrictions added on except_rethrow. 3. Exception module must now be explicitly initialized with except_init. 4. Structure members in exception header renamed to adhere to documented namespace. 5. The exwrap.[ch] source files are gone. There is support for memory allocation with exception handling in except.c, which supports user defined allocators. 6. Three bugfixes to sfx parser. First, unary operators take a cast expression, not a unary expression. Secondly, sizeof doesn't throw a syntax error anymore on things that look like casts, but maybe are not. Thirdly, empty parentheses weren't handled right in treatment of ambiguous expressions, e.g. (a)() was declared a syntax error. 7. Changed the representation of hash table chains. They are now singly linked lists, which means that the overhead of managing back pointers is gone. Only deletion is slightly more complicated now because it has to search from the beginning of the chain. [Rationale: this is okay, since chains are supposed to be short in a hash table!] 8. Rewritten test main() in list.c. It's now more like the others with a menu. Previously it was essentially a file sorting program. 9. New function: list_find. Exhaustively searches the list for a matching entry, returns pointer to node if found.New in 1.14 1. Got rid of some overbearing copyright restrictions. There is no need for executables to contain copyright notices. In fact, there are no restrictions on the use, or distribution in executable form. 2. Tiny tweak in red-black fixup code of dict_insert. 3. Keys in hash and dict are declared const void * now in all functions rather than plain void *. This means that casts are no longer necessary when calling insert or lookup functions with const data as the key. But casts of the return value of hnode_getkey or dnode_getkey may be required. 4. Fixed compile breakage of except.c when posix thread support enabled. 5. Side effect assertion interface now performs caching, to avoid parsing the same expressions over and over again. Thus debugging with KAZLIB_SIDEEFFECT_DEBUG incurs a smaller performance hit. 6. Major bugfix to sfx expression parser. The function dealing with disambiguating casts had to be rewritten to do more sophisticated lookahead and backtracking. It all started with Mark Brady discovered that (a++)+b was being incorrectly diagnosed as a syntax error. 7. Added documentation. more examples for uses of dictionaries, and exception handling. Some documentation about the internals of exception handling added. Changed document format for narrower margins, reducing page count and increasing readability. 8. Bugfix in except_rethrow. It was freeing the dynamic data of the exception even though it's not handled yet.New in 1.13 1. Fixed some potential memory leaks in except.c. 2. Finished all interface documentation. All that is left now is to flesh out the implementation notes. 3. Fixed a bug in POSIX threaded variant of except.c. Null function pointer dereference in unhandled exception case. 4. Macros beginning with E[A-Z] have been renamed to stay out of space reserved for <errno.h>. 5. Identifiers in exwrap.[ch] have been renamed from having ex_ prefixed to having exwrap_ prefixes.New in 1.12 1. COOL! New module for detecting side effects in C expressions. 2. Serious bugfix in hash_init(). The computation of the initial hash mask was completely botched up. Historically this code has seen little testing because hashing over a user supplied table is not extendible. Users of hash_create() are not affected. 3. Tried to make computation of hash_val_t_bit more threadsafe. It should be okay if writes to int objects are atomic, and concurrent writes of the same int value to a given object are safe. 4. Makefile renamed to Makefile.gcc. Makevile.vc added. The rename is retroactive to all prior releases. 5. OPAQUE_DEBUG becomes KAZLIB_OPAQUE_DEBUG and TEST_MAIN becomes
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -