Lines Matching refs:psh
609 * size. Free the old array. If psh is NULL and *current_size 0, create a new
616 suri_expand_handle_array(struct suri_handle **psh, int *current_size)
621 assert(psh == NULL || (*current_size > 0));
624 suri_destroy_handle_array(&psh);
627 (void) memcpy(tpsh, psh, *current_size * sizeof (suri_handle_t *));
629 if (psh != NULL)
630 free(psh);
638 suri_destroy_handle_array(struct suri_handle ***psh)
642 assert(psh != NULL && *psh != NULL);
643 for (i = 0; (*psh)[i] != NULL; ++i)
644 suri_free((suri_handle_t)((*psh)[i]));
645 free(*psh);
646 *psh = NULL;
653 suri_get_handle_count(struct suri_handle **psh)
657 assert(psh != NULL);
658 while (psh[i] != NULL)
684 suri_remove_duplicate_handles(struct suri_handle **psh)
689 assert(psh[0] != NULL);
690 n = suri_get_handle_count(psh);
691 qsort(psh, n, sizeof (struct suri_handle *), suri_cmp_handle);
694 * increased if the next handle to process (ie., psh[j]) is a duplicate
695 * of psh[i]. Index 'j' is used to go through the whole array handle by
699 for (i = 0, j = 1; psh[j] != NULL; ++j) {
700 if (strcmp(psh[i]->sh_uri, psh[j]->sh_uri) == 0) {
701 suri_free((suri_handle_t)psh[j]);
709 psh[i] = psh[j];
711 /* psh[i] is the last handle in the array */
712 psh[i + 1] = NULL;