summaryrefslogtreecommitdiff
path: root/ckcapi-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'ckcapi-session.c')
-rw-r--r--ckcapi-session.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ckcapi-session.c b/ckcapi-session.c
index dc35ce0..5daae6e 100644
--- a/ckcapi-session.c
+++ b/ckcapi-session.c
@@ -550,7 +550,7 @@ void
purge_duplicate_objects(CkCapiArray* arr)
{
CkCapiHash* checks;
- CkCapiObject* v;
+ CK_OBJECT_HANDLE* v;
size_t i;
checks = ckcapi_hash_new();
@@ -559,15 +559,15 @@ purge_duplicate_objects(CkCapiArray* arr)
for(i = 0; i < arr->len; )
{
- v = ckcapi_array_index(arr, CkCapiObject*, i);
- if(ckcapi_hash_get(checks, &v, sizeof(CkCapiObject*)))
+ v = &ckcapi_array_index(arr, CK_OBJECT_HANDLE, i);
+ if(ckcapi_hash_get(checks, v, sizeof(CK_OBJECT_HANDLE)))
{
ckcapi_array_remove_index(arr, i);
/* Look at same i again */
}
else
{
- if(!ckcapi_hash_set(checks, &v, sizeof(CkCapiObject*), &v))
+ if(!ckcapi_hash_set(checks, v, sizeof(CK_OBJECT_HANDLE), v))
break;
++i;
}
@@ -589,7 +589,7 @@ ckcapi_session_find_init(CkCapiSession* sess, CK_ATTRIBUTE_PTR match,
if(sess->operation_type != OPERATION_NONE)
return CKR_OPERATION_ACTIVE;
- arr = ckcapi_array_new(0, 1, sizeof(CkCapiObject*));
+ arr = ckcapi_array_new(0, 1, sizeof(CK_OBJECT_HANDLE));
if(!arr)
return CKR_HOST_MEMORY;
@@ -633,7 +633,8 @@ ckcapi_session_find(CkCapiSession* sess, CK_OBJECT_HANDLE_PTR objects,
arr = (CkCapiArray*)sess->operation_data;
*object_count = (max_object_count > arr->len ? arr->len : max_object_count);
for(i = 0; i < *object_count; ++i)
- objects[i] = ckcapi_array_index(arr, CkCapiObject*, i)->id;
+ objects[i] = ckcapi_array_index(arr, CK_OBJECT_HANDLE, i);
+
ckcapi_array_remove_range(arr, 0, *object_count);
return CKR_OK;