Commit 310f55d0c95c9f26ed6924f1279724f8ca48e724

Con Kolivas 2012-01-28T16:29:53

Merge branch 'master' into reorder

diff --git a/ocl.c b/ocl.c
index d963fc1..7e16f60 100644
--- a/ocl.c
+++ b/ocl.c
@@ -465,6 +465,12 @@ build:
 		return NULL;
 	}
 
+	clRetainProgram(clState->program);
+	if (status != CL_SUCCESS) {
+		applog(LOG_ERR, "Error: Retaining Program (clRetainProgram)");
+		return NULL;
+	}
+
 	/* create a cl program executable for all the devices specified */
 	char *CompilerOptions = calloc(1, 256);
 
@@ -588,6 +594,12 @@ build:
 			applog(LOG_ERR, "Error: Loading Binary into cl_program (clCreateProgramWithBinary)");
 			return NULL;
 		}
+
+		clRetainProgram(clState->program);
+		if (status != CL_SUCCESS) {
+			applog(LOG_ERR, "Error: Retaining Program (clRetainProgram)");
+			return NULL;
+		}
 	}
 
 	free(source);
@@ -627,6 +639,12 @@ built:
 			applog(LOG_INFO, "%s", log);
 			return NULL;
 		}
+
+		clRetainProgram(clState->program);
+		if (status != CL_SUCCESS) {
+			applog(LOG_ERR, "Error: Retaining Program (clRetainProgram)");
+			return NULL;
+		}
 	}
 
 	/* get a kernel object handle for a kernel with the given name */