| 
					
				 | 
			
			
				@@ -48,9 +48,9 @@ static gpr_timespec random_deadline(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return ts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static grpc_alarm *create_test_elements(int num_elements) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static grpc_alarm *create_test_elements(size_t num_elements) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_alarm *elems = gpr_malloc(num_elements * sizeof(grpc_alarm)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < num_elements; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     elems[i].deadline = random_deadline(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,24 +63,25 @@ static int cmp_elem(const void *a, const void *b) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return i - j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static int *all_top(grpc_alarm_heap *pq, int *n) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int *vec = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int *need_to_check_children; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int num_need_to_check_children = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static size_t *all_top(grpc_alarm_heap *pq, size_t *n) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t *vec = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t *need_to_check_children; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t num_need_to_check_children = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   *n = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (pq->alarm_count == 0) return vec; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  need_to_check_children = gpr_malloc(pq->alarm_count * sizeof(int)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  need_to_check_children = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      gpr_malloc(pq->alarm_count * sizeof(*need_to_check_children)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   need_to_check_children[num_need_to_check_children++] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  vec = gpr_malloc(pq->alarm_count * sizeof(int)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  vec = gpr_malloc(pq->alarm_count * sizeof(*vec)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (num_need_to_check_children > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    int ind = need_to_check_children[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    int leftchild, rightchild; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t ind = need_to_check_children[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t leftchild, rightchild; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     num_need_to_check_children--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     memmove(need_to_check_children, need_to_check_children + 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            num_need_to_check_children * sizeof(int)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            num_need_to_check_children * sizeof(*need_to_check_children)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     vec[(*n)++] = ind; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    leftchild = 1 + 2 * ind; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    leftchild = 1u + 2u * ind; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (leftchild < pq->alarm_count) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (gpr_time_cmp(pq->alarms[leftchild]->deadline, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        pq->alarms[ind]->deadline) >= 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -101,13 +102,14 @@ static int *all_top(grpc_alarm_heap *pq, int *n) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void check_pq_top(grpc_alarm *elements, grpc_alarm_heap *pq, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                         gpr_uint8 *inpq, int num_elements) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         gpr_uint8 *inpq, size_t num_elements) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   gpr_timespec max_deadline = gpr_inf_past(GPR_CLOCK_REALTIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int *max_deadline_indices = gpr_malloc(num_elements * sizeof(int)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int *top_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int num_max_deadline_indices = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int num_top_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t *max_deadline_indices = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      gpr_malloc(num_elements * sizeof(*max_deadline_indices)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t *top_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t num_max_deadline_indices = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t num_top_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < num_elements; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (inpq[i] && gpr_time_cmp(elements[i].deadline, max_deadline) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (gpr_time_cmp(elements[i].deadline, max_deadline) > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,7 +119,8 @@ static void check_pq_top(grpc_alarm *elements, grpc_alarm_heap *pq, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       max_deadline_indices[num_max_deadline_indices++] = elements[i].heap_index; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  qsort(max_deadline_indices, num_max_deadline_indices, sizeof(int), cmp_elem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  qsort(max_deadline_indices, num_max_deadline_indices, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sizeof(*max_deadline_indices), cmp_elem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   top_elements = all_top(pq, &num_top_elements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GPR_ASSERT(num_top_elements == num_max_deadline_indices); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < num_top_elements; i++) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,7 +131,7 @@ static void check_pq_top(grpc_alarm *elements, grpc_alarm_heap *pq, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static int contains(grpc_alarm_heap *pq, grpc_alarm *el) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < pq->alarm_count; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (pq->alarms[i] == el) return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -136,10 +139,10 @@ static int contains(grpc_alarm_heap *pq, grpc_alarm *el) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void check_valid(grpc_alarm_heap *pq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < pq->alarm_count; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    int left_child = 1 + 2 * i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    int right_child = left_child + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t left_child = 1u + 2u * i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t right_child = left_child + 1u; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (left_child < pq->alarm_count) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       GPR_ASSERT(gpr_time_cmp(pq->alarms[i]->deadline, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               pq->alarms[left_child]->deadline) >= 0); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -153,9 +156,9 @@ static void check_valid(grpc_alarm_heap *pq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void test1(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_alarm_heap pq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const int num_test_elements = 200; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const int num_test_operations = 10000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const size_t num_test_elements = 200; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const size_t num_test_operations = 10000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_alarm *test_elements = create_test_elements(num_test_elements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   gpr_uint8 *inpq = gpr_malloc(num_test_elements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -182,7 +185,7 @@ static void test1(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   check_pq_top(test_elements, &pq, inpq, num_test_elements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (i = 0; i < num_test_operations; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    int elem_num = rand() % num_test_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t elem_num = (size_t)rand() % num_test_elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_alarm *el = &test_elements[elem_num]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!inpq[elem_num]) { /* not in pq */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       GPR_ASSERT(!contains(&pq, el)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,11 +212,11 @@ static void test1(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void shrink_test(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_alarm_heap pq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  int expected_size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  size_t expected_size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* A large random number to allow for multiple shrinkages, at least 512. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const int num_elements = rand() % 2000 + 512; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const size_t num_elements = (size_t)rand() % 2000 + 512; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_alarm_heap_init(&pq); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -243,7 +246,7 @@ static void shrink_test(void) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      4 times the Size and not less than 2 times, but never goes below 16. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   expected_size = pq.alarm_count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (pq.alarm_count > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const int which = rand() % pq.alarm_count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const size_t which = (size_t)rand() % pq.alarm_count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_alarm *te = pq.alarms[which]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_alarm_heap_remove(&pq, te); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gpr_free(te); 
			 |