소스 검색

src/core/sched_policy.c: to access predefined_policies, use a nice for loop instead of the ugly while loop (if you like pointer arithmetic ...)

Nathalie Furmento 12 년 전
부모
커밋
235a4c0174
1개의 변경된 파일8개의 추가작업 그리고 12개의 파일을 삭제
  1. 8 12
      src/core/sched_policy.c

+ 8 - 12
src/core/sched_policy.c

@@ -92,12 +92,10 @@ static struct starpu_sched_policy *find_sched_policy_from_name(const char *polic
 		return &_starpu_sched_dmda_policy;
 	}
 
-	unsigned i;
-	for (i = 0; i < sizeof(predefined_policies)/sizeof(predefined_policies[0]); i++)
+	struct starpu_sched_policy **policy;
+	for(policy=predefined_policies ; *policy!=NULL ; policy++)
 	{
-		struct starpu_sched_policy *p;
-		p = predefined_policies[i];
-		if (p == NULL) continue; // We reached the end of the array
+		struct starpu_sched_policy *p = *policy;
 		if (p->policy_name)
 		{
 			if (strcmp(policy_name, p->policy_name) == 0)
@@ -118,15 +116,13 @@ static void display_sched_help_message(void)
 	const char *sched_env = getenv("STARPU_SCHED");
 	if (sched_env && (strcmp(sched_env, "help") == 0))
 	{
-		fprintf(stderr, "STARPU_SCHED can be either of\n");
-
 		/* display the description of all predefined policies */
-		unsigned i;
-		for (i = 0; i < sizeof(predefined_policies)/sizeof(predefined_policies[0]); i++)
+		struct starpu_sched_policy **policy;
+
+		fprintf(stderr, "STARPU_SCHED can be either of\n");
+		for(policy=predefined_policies ; *policy!=NULL ; policy++)
 		{
-			struct starpu_sched_policy *p;
-			p = predefined_policies[i];
-			if (p == NULL) continue; // We reached the end of the array
+			struct starpu_sched_policy *p = *policy;
 			fprintf(stderr, "%s\t-> %s\n", p->policy_name, p->policy_description);
 		}
 	 }