diff options
| author | Alexandra Ellwood <lxs@mit.edu> | 2007-07-19 21:13:01 +0000 |
|---|---|---|
| committer | Alexandra Ellwood <lxs@mit.edu> | 2007-07-19 21:13:01 +0000 |
| commit | c7f2957ec351c161b999c3bdfb654bc8a84556e1 (patch) | |
| tree | faffc21e13d048fc1c5975c36fc44d988de74f31 /src/ccapi/common/cci_array_internal.c | |
| parent | 412af5988acf11f4d7824f5b42265515b86ddad4 (diff) | |
| download | krb5-c7f2957ec351c161b999c3bdfb654bc8a84556e1.tar.gz krb5-c7f2957ec351c161b999c3bdfb654bc8a84556e1.tar.xz krb5-c7f2957ec351c161b999c3bdfb654bc8a84556e1.zip | |
Made callback code generic so that change time callbacks can use it as well
ticket: 4644
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19719 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/ccapi/common/cci_array_internal.c')
| -rw-r--r-- | src/ccapi/common/cci_array_internal.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/ccapi/common/cci_array_internal.c b/src/ccapi/common/cci_array_internal.c index 8e6bcd7e2..85578c2b1 100644 --- a/src/ccapi/common/cci_array_internal.c +++ b/src/ccapi/common/cci_array_internal.c @@ -133,9 +133,11 @@ cc_int32 cci_array_release (cci_array_t io_array) if (!err) { cc_uint64 i; - for (i = 0; i < io_array->count; i++) { - io_array->object_release (io_array->objects[i]); - } + if (io_array->object_release) { + for (i = 0; i < io_array->count; i++) { + io_array->object_release (io_array->objects[i]); + } + } free (io_array->objects); free (io_array); } @@ -193,15 +195,14 @@ cc_int32 cci_array_insert (cci_array_t io_array, } if (!err) { - unsigned char **objects = (unsigned char **)io_array->objects; cc_uint64 move_count = io_array->count - in_position; if (move_count > 0) { - memmove (&objects[in_position + 1], &objects[in_position], - move_count * sizeof (*objects)); + memmove (&io_array->objects[in_position + 1], &io_array->objects[in_position], + move_count * sizeof (*io_array->objects)); } - objects[in_position] = in_object; + io_array->objects[in_position] = in_object; io_array->count++; } @@ -222,16 +223,15 @@ cc_int32 cci_array_remove (cci_array_t io_array, } if (!err) { - unsigned char **objects = (unsigned char **)io_array->objects; cc_uint64 move_count = io_array->count - in_position - 1; - cci_array_object_t object = objects[in_position]; + cci_array_object_t object = io_array->objects[in_position]; if (move_count > 0) { - memmove (&objects[in_position], &objects[in_position + 1], - move_count * sizeof (*objects)); + memmove (&io_array->objects[in_position], &io_array->objects[in_position + 1], + move_count * sizeof (*io_array->objects)); } - io_array->object_release (object); + if (io_array->object_release) { io_array->object_release (object); } io_array->count--; cci_array_resize (io_array, io_array->count); @@ -281,12 +281,11 @@ cc_int32 cci_array_move (cci_array_t io_array, } if (move_count > 0) { - unsigned char **objects = (unsigned char **)io_array->objects; - cci_array_object_t object = objects[in_position]; + cci_array_object_t object = io_array->objects[in_position]; - memmove (&objects[move_to], &objects[move_from], - move_count * sizeof (*objects)); - objects[real_new_position] = object; + memmove (&io_array->objects[move_to], &io_array->objects[move_from], + move_count * sizeof (*io_array->objects)); + io_array->objects[real_new_position] = object; } *out_real_new_position = real_new_position; |
