in OpsWorks/sample-cookbooks/cpulimit-ruby/files/default/cpulimit-master/src/process_iterator_apple.c [18:42]
int unique_nonzero_ints(int* arr_in, int len_in, int* arr_out) {
int* source = arr_in;
if (arr_out == NULL) return -1;
if (arr_in == arr_out) {
source = malloc(sizeof(int)*len_in);
memcpy(source, arr_in, sizeof(int)*len_in);
memset(arr_out, -1, sizeof(int)*len_in);
}
int len_out = 0;
int i, j;
for (i=0; i<len_in; i++) {
int found = 0;
if (source[i] == 0) continue;
for (j=0; !found && j<len_out; j++) {
found = (source[i] == arr_out[j]) ? 1 : 0;
}
if (!found) {
arr_out[len_out++] = source[i];
}
}
if (arr_in == arr_out) {
free(source);
}
return len_out-1;
}