Browse Source

SOCL: fix memory allocation

Sylvain Henry 12 years ago
parent
commit
1dee97db16
1 changed files with 7 additions and 10 deletions
  1. 7 10
      socl/examples/clinfo/clinfo.c

+ 7 - 10
socl/examples/clinfo/clinfo.c

@@ -32,7 +32,6 @@ int
 main(void) {
    cl_int err;
    cl_uint num_platforms;
-   cl_platform_id *platforms;
 
    // Plaform info
    err = clGetPlatformIDs(0, NULL, &num_platforms);
@@ -42,7 +41,7 @@ main(void) {
    }
    checkErr(err, "Unable to get platform count");
 
-   platforms = (cl_platform_id*)malloc(sizeof(cl_platform_id)*num_platforms);
+   cl_platform_id platforms[num_platforms];
    err = clGetPlatformIDs(num_platforms, platforms, NULL);
    checkErr(err, "Unable to get platform list");
 
@@ -82,7 +81,6 @@ main(void) {
       unsigned int i;
       for (i=0; i<num_platforms; i++) {
          char str[256];
-         cl_device_id * devices;
          cl_uint num_devices;
 
          err = clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, sizeof(str), &str, NULL);
@@ -91,12 +89,12 @@ main(void) {
 
          err = clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);
          checkErr(err, "clGetDeviceIds(CL_DEVICE_TYPE_ALL)");
-	 if (num_devices == 0) {
-	      printf("  No devices found\n");
-	      continue;
-	 }
+         if (num_devices == 0) {
+            printf("  No devices found\n");
+            continue;
+         }
 
-         devices = (cl_device_id*)malloc(sizeof(cl_device_id)*num_devices);
+         cl_device_id devices[num_devices];
 
          err = clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_ALL, num_devices, devices, NULL);
          checkErr(err, "clGetDeviceIds(CL_DEVICE_TYPE_ALL)");
@@ -138,12 +136,11 @@ main(void) {
 
                {
                   cl_uint dims;
-                  size_t *sizes;
                   err = clGetDeviceInfo(devices[j], CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, sizeof(dims), &dims, NULL);
                   checkErr(err, "clGetDeviceInfo(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS)");
                   printf("  Max work item dimensions:\t\t\t %d\n", dims);
 
-                  sizes = (size_t*)malloc(dims * sizeof(size_t));
+                  size_t sizes[dims];
                   err = clGetDeviceInfo(devices[j], CL_DEVICE_MAX_WORK_ITEM_SIZES, sizeof(size_t)*dims, sizes, NULL);
                   checkErr(err, "clGetDeviceInfo(CL_DEVICE_MAX_WORK_ITEM_SIZES)");
                   printf("  Max work item dimensions:\t\t\t %d\n", dims);