Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2021-07-13 | cpp: Array: Make sure the array passed to array_fill ist passed by reference | liujianfengv | 1 | -1/+1 | |
When creating a new Array object, for example through PList::Node::FromPlist(plist_t node), the array_fill function is called from Array() constructor in line 51. It seems that the intended way of calling array_fill() is to pass the _array object by reference, however it is actually passed by value. Thus the changes to the array object made by array_fill() are discarded when the function returns. This commit passes the _array by reference so we keep the changes. | |||||
2021-06-22 | [clang-tidy] Remove casts to the same type | Rosen Penev | 2 | -2/+2 | |
Found with google-readability-casting Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Replace free with delete | Rosen Penev | 5 | -19/+9 | |
It's the C++ way. It also avoids having to check for NULL. Found with cppcoreguidelines-owning-memory Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Fix bad widening casts | Rosen Penev | 1 | -2/+2 | |
Found with bugprone-misplaced-widening-cast Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Use correct type for loop variable | Rosen Penev | 1 | -4/+2 | |
Found with bugprone-too-small-loop-variable Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] cpp: Turn reference operators to const | Rosen Penev | 10 | -10/+10 | |
Found with cppcoreguidelines-c-copy-assignment-signature Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Avoid global non-const variables | Rosen Penev | 2 | -4/+4 | |
Found with cppcoreguidelines-avoid-non-const-global-variables Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-06-22 | [clang-tidy] Remove pointless const | Rosen Penev | 2 | -2/+2 | |
The const is actually misplaced. const plist_t evaluates to void *const instead of const void *. const qualification of the former makes no sense in function declarations. Found with misc-misplaced-const Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2021-01-25 | Replace malloc + memset with calloc where appropriate | Rosen Penev | 1 | -2/+1 | |
calloc is faster for big allocations. It's also simpler. Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-24 | time64: Remove code duplication in separate if branches by combining the ↵ | Rosen Penev | 1 | -6/+1 | |
conditions [clang-tidy] Found with bugprone-branch-clone Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-24 | Add parentheses to macros for better readability | Rosen Penev | 2 | -15/+15 | |
[clang-tidy] Found with bugprone-macro-parentheses Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-24 | Improve code readability by using explicit != 0 compare when using strncmp | Rosen Penev | 1 | -4/+4 | |
[clang-tidy] Found with bugprone-suspicious-string-compare Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-24 | Improve code readability by not using else after return | Rosen Penev | 2 | -54/+50 | |
[clang-tidy] Found with readability-else-after-return Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-11-21 | bplist: Fix offset table range check, don't rely on pointer overflow | Nikias Bassen | 1 | -1/+1 | |
2020-06-14 | Add API version to library and pkgconfig file for proper linking | Nikias Bassen | 3 | -12/+12 | |
2020-06-09 | Unfold automake variables into multiple lines for maintainability | Martin Szulecki | 1 | -36/+47 | |
2020-06-09 | Fix pkg-config file liblist++-2.0.pc referencing wrong (old) libplist | Nikias Bassen | 1 | -1/+1 | |
2020-06-08 | Remove whitespace errors from all files | Martin Szulecki | 4 | -10/+10 | |
2020-06-08 | pkgconfig: Correctly rename libplist*.pc to libplist*-2.0.pc | Nikias Bassen | 3 | -1/+1 | |
2020-06-03 | c++: Switch to c++ headers | Rosen Penev | 12 | -13/+13 | |
[clang-tidy]Found with hicpp-deprecated-headers Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-06-03 | c++: Remove redundant initialization | Rosen Penev | 2 | -2/+2 | |
[clang-tidy] Found with readability-redundant-member-init Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-06-03 | c++: Add closing namespace comment | Rosen Penev | 12 | -12/+12 | |
[clang-tidy] Found with google-readability-namespace-comments Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-06-03 | Remove pointless return in void functions | Rosen Penev | 3 | -14/+0 | |
[clang-tidy] Found with readability-redundant-control-flow Signed-off-by: Rosen Penev <rosenp@gmail.com> | |||||
2020-05-26 | Make plist_bool_val_is_true() return 0 instead of -1 if node is NULL or not ↵ | Nikias Bassen | 1 | -1/+1 | |
a PLIST_BOOLEAN | |||||
2020-05-25 | Return NULL from plist_copy() if passed a NULL pointer | Xiao Deng | 1 | -1/+1 | |
This will prevent an assert if a NULL pointer is passed, and can make writing some code easier and cleaner without the need for a NULL check. For example, plist_copy(plist_dict_get_item(dict, "abc")) would give us a copy of the dict's node if the dict has a value for the given key, or NULL without any further checks. | |||||
2020-05-21 | Fix symbol mismatch between public header and interface (plist_bool_val_is_true) | Nikias Bassen | 1 | -1/+1 | |
2020-05-14 | time64: Silence compiler warnings about shadowed variable declarations | Nikias Bassen | 1 | -29/+29 | |
2020-05-14 | bplist: Prevent 32bit compiler warning | Nikias Bassen | 1 | -1/+3 | |
2020-05-11 | bplist: Remove unnecessary allocation and unused variables | Nikias Bassen | 1 | -10/+5 | |
2020-05-11 | Suppress compiler warning about memmem on Linux | Nikias Bassen | 1 | -0/+1 | |
2020-05-11 | Add plist_*_val_compare, plist_*_val_contains, etc. for the respective node ↵ | Nikias Bassen | 1 | -0/+231 | |
types ... except container node types like PLIST_ARRAY or PLIST_DICT. | |||||
2020-04-21 | time64/ctime64_r: localtime64_r can fail | Derrick Lyndon Pallas | 1 | -1/+3 | |
In ctime64_r, the call to localtime64_r can fail. If we don't check for this and then call asctime64_r, the results are garbage. Signed-off-by: Derrick Lyndon Pallas <derrick@pallas.us> | |||||
2019-12-09 | bplist: Silence compiler warning | Nikias Bassen | 1 | -2/+2 | |
2019-12-09 | bplist: Add cast to/from uint32_t when reading/storing indices for recursion ↵ | Nikias Bassen | 1 | -4/+4 | |
check | |||||
2019-12-09 | bplist: use ptr_array instead of PLIST_ARRAY to store node indices for ↵ | XD | 1 | -10/+10 | |
recursing check This improves performance by at least 30% for large files, and also reduces the memory footprint. | |||||
2019-12-09 | ptrarray: Add function returning the size (number of elements) of the array | XD | 2 | -1/+7 | |
2019-11-07 | xplist: Bail out when '.' is found while checking for ',' in double to ↵ | Nikias Bassen | 1 | -0/+2 | |
string conversion | |||||
2019-11-07 | Add plist_get_data_ptr() and plist_get_string_ptr() to the interface | Nikias Bassen | 1 | -0/+25 | |
2019-11-07 | Add plist_to_bin_free() and plist_to_xml_free() functions that free memory ↵ | Nikias Bassen | 2 | -0/+10 | |
allocated by plist_to_bin()/plist_to_xml() | |||||
2019-11-07 | xplist: Increase precision when converting PLIST_REAL nodes to XML | Nikias Bassen | 1 | -37/+16 | |
2019-08-13 | plist: Remove unnecessary parameter from plist_copy_node() | Xiao Deng | 1 | -14/+6 | |
2019-08-09 | Make sure to copy hash table entries properly when cloning array/dict nodes | Nikias Bassen | 1 | -18/+22 | |
As mentioned in #142, plist_copy_node() was not correctly handling the hash tables when cloning array or dict nodes; it incorrectly filled the hash table with the original child node info, which effectively would lead to a segmentation fault / UaF if the original array/dict would be freed followed by an attempt to access an element in the new hash table. | |||||
2019-07-07 | Add PList::Dictionary::const_iterator | Alexander Böhn | 1 | -0/+15 | |
... and const versions of three member functions, each returning const_iterator: * Plist::Dictionary::Begin() * PList::Dictionary::End() * PList::Dictionary::Find() | |||||
2019-06-26 | Fixed bug in dictionary_fill | tihmstar | 1 | -1/+1 | |
Bug: when creating a new Dictionary object (for example through PList::Node::FromPlist(plist_t node) ), the dictionary_fill function is called from Dictionary() constructor in line 50. It seems that the intended way of calling dictionary_fill() is to pass the _map object by reference, however it is actually passed by value. Thus the changes to the map object made by dictionary_fill() are discarded when the function returns. Fix: pass _map by reference to keep the changes | |||||
2019-05-20 | plist_set_key_val(): prevent setting a key value that already exists in a ↵ | Nikias Bassen | 1 | -0/+5 | |
PLIST_DICT | |||||
2019-05-20 | Add plist_dict_item_get_key() to allow retrieving the key node for a given ↵ | Nikias Bassen | 1 | -0/+11 | |
item of a #PLIST_DICT | |||||
2019-05-19 | Add plist_array_item_remove() to allow removing an array's child node ↵ | Nikias Bassen | 1 | -0/+15 | |
without relying on the index | |||||
2019-05-19 | plist_array_get_item_index(): return UINT_MAX instead of 0 when node can't ↵ | Nikias Bassen | 2 | -1/+5 | |
be found | |||||
2019-05-19 | Add index lookup table for large PLIST_ARRAY nodes | Nikias Bassen | 3 | -22/+113 | |
2019-05-16 | Ignore invalid input in plist_get_*_val() to prevent unnecessary assertions | Nikias Bassen | 1 | -19/+50 | |
Also fixes #126 by skipping the strlen() in the assert() if for some reason NULL is returned as data |