⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes

📁 一些常用的数据结构库
💻
📖 第 1 页 / 共 2 页
字号:
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 + -