Index: src/gpu/gl/debug/GrProgramObj.cpp |
diff --git a/src/gpu/gl/debug/GrProgramObj.cpp b/src/gpu/gl/debug/GrProgramObj.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d45bd1c113fd2eb285a8d37640574e42f0cfdf2c |
--- /dev/null |
+++ b/src/gpu/gl/debug/GrProgramObj.cpp |
@@ -0,0 +1,26 @@ |
+/* |
+ * Copyright 2012 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "GrProgramObj.h" |
+#include "GrShaderObj.h" |
+ |
+void GrProgramObj::AttachShader(GrShaderObj *shader) { |
+ shader->ref(); |
+ fShaders.push_back(shader); |
+} |
+ |
+void GrProgramObj::deleteAction() { |
+ |
+ // shaders are automatically detached from a deleted program. They will only be |
+ // deleted if they were marked for deletion by a prior call to glDeleteShader |
+ for (int i = 0; i < fShaders.count(); ++i) { |
+ fShaders[i]->unref(); |
+ } |
+ fShaders.reset(); |
+ |
+ this->INHERITED::deleteAction(); |
+} |