Deleting program does not delete shaders that are marked

TRAC #12012

Also fixes failure to delete flagged program upon glUseProgram(0).

Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch

Author:    Andrew Lewycky

git-svn-id: https://angleproject.googlecode.com/svn/trunk@201 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
index aa74319..18a46c0 100644
--- a/src/libGLESv2/Program.cpp
+++ b/src/libGLESv2/Program.cpp
@@ -58,6 +58,16 @@
 Program::~Program()
 {
     unlink(true);
+
+    if (mVertexShader != NULL)
+    {
+        mVertexShader->detach();
+    }
+
+    if (mFragmentShader != NULL)
+    {
+        mFragmentShader->detach();
+    }
 }
 
 bool Program::attachShader(Shader *shader)