projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
travis: update
[m6w6/ext-psi]
/
src
/
plist.c
diff --git
a/src/plist.c
b/src/plist.c
index 699db2c6dbc7b454cae187624fec109887a09412..8b38fe018dd66b5781286643d7f057cb64bd3bf1 100644
(file)
--- a/
src/plist.c
+++ b/
src/plist.c
@@
-23,7
+23,11
@@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
#include "plist.h"
#include "plist.h"
@@
-60,7
+64,7
@@
struct psi_plist *psi_plist_init_ex(size_t size, void (*dtor)(void *)) {
size = sizeof(void*);
}
size = sizeof(void*);
}
- list =
calloc(1, sizeof(*list) + size
);
+ list =
pecalloc(1, sizeof(*list) + size, 1
);
list->size = size;
list->dtor = dtor;
list->size = size;
list->dtor = dtor;
@@
-88,7
+92,7
@@
void psi_plist_free(struct psi_plist *list) {
struct psi_plist *psi_plist_copy(struct psi_plist *list, void (*ctor)(void *))
{
size_t i;
struct psi_plist *psi_plist_copy(struct psi_plist *list, void (*ctor)(void *))
{
size_t i;
- struct psi_plist *copy =
calloc(1, sizeof(*list) + list->size + list->count * list->size
);
+ struct psi_plist *copy =
pecalloc(1, sizeof(*list) + list->size + list->count * list->size, 1
);
*copy = *list;
if (list->count) {
*copy = *list;
if (list->count) {
@@
-113,7
+117,7
@@
void **psi_plist_eles(struct psi_plist *list) {
struct psi_plist *psi_plist_add(struct psi_plist *list, void *ptr) {
if (list && list->count) {
struct psi_plist *psi_plist_add(struct psi_plist *list, void *ptr) {
if (list && list->count) {
- list =
realloc(list, sizeof(*list) + list->size + list->count * list->size
);
+ list =
safe_perealloc(list, list->count + 1, list->size, sizeof(*list), 1
);
}
if (list) {
PLIST_CPY(list, PLIST_ELE(list, list->count++), ptr);
}
if (list) {
PLIST_CPY(list, PLIST_ELE(list, list->count++), ptr);
@@
-123,7
+127,7
@@
struct psi_plist *psi_plist_add(struct psi_plist *list, void *ptr) {
struct psi_plist *psi_plist_add_r(struct psi_plist *list, size_t num_eles, void **eles) {
if (list) {
struct psi_plist *psi_plist_add_r(struct psi_plist *list, size_t num_eles, void **eles) {
if (list) {
- list =
realloc(list, sizeof(*list) + list->size + (num_eles + list->count) * list->size
);
+ list =
safe_perealloc(list, list->count + num_eles + 1, list->size, sizeof(*list), 1
);
}
if (list) {
memcpy(PLIST_ELE(list, list->count), eles, num_eles * list->size);
}
if (list) {
memcpy(PLIST_ELE(list, list->count), eles, num_eles * list->size);
@@
-148,6
+152,14
@@
bool psi_plist_unset(struct psi_plist *list, size_t index) {
return false;
}
return false;
}
+bool psi_plist_set(struct psi_plist *list, size_t index, void *ptr) {
+ if (list && list->count > index) {
+ PLIST_CPY(list, PLIST_ELE(list, index), ptr);
+ return true;
+ }
+ return false;
+}
+
bool psi_plist_del(struct psi_plist *list, size_t index, void *ptr) {
if (list && list->count > index) {
if (ptr) {
bool psi_plist_del(struct psi_plist *list, size_t index, void *ptr) {
if (list && list->count > index) {
if (ptr) {
@@
-190,7
+202,7
@@
struct psi_plist *psi_plist_ins(struct psi_plist *list, size_t index, void *ptr)
if (list) {
new_count = MAX(list->count + 1, index);
if (new_count) {
if (list) {
new_count = MAX(list->count + 1, index);
if (new_count) {
- list =
realloc(list, sizeof(*list) + list->size + new_count * list->size
);
+ list =
safe_perealloc(list, new_count + 1, list->size, sizeof(*list), 1
);
}
if (list) {
PLIST_MOV_EXPAND(list, index);
}
if (list) {
PLIST_MOV_EXPAND(list, index);
@@
-207,11
+219,9
@@
struct psi_plist *psi_plist_ins_r(struct psi_plist *list, size_t offset_start, s
if (list) {
new_count = MAX(offset_start, list->count) + num_eles;
if (new_count) {
if (list) {
new_count = MAX(offset_start, list->count) + num_eles;
if (new_count) {
- list =
realloc(list, sizeof(*list) + list->size + new_count * list->size
);
+ list =
safe_perealloc(list, new_count + 1, list->size, sizeof(*list), 1
);
}
if (list) {
}
if (list) {
- size_t e;
-
PLIST_MOV_EXPAND_EX(list, offset_start, num_eles);
PLIST_CPY_R(list, PLIST_ELE(list, offset_start), eles, num_eles);
list->count = new_count;
PLIST_MOV_EXPAND_EX(list, offset_start, num_eles);
PLIST_CPY_R(list, PLIST_ELE(list, offset_start), eles, num_eles);
list->count = new_count;