Refactor program info log out of ProgramBinary and in to Program.

Tested by setting breakpoint in esLoadProgram with the broken program.
Review URL: https://codereview.appspot.com/6305114

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1164 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.h b/src/libGLESv2/Program.h
index 1b4239a..244731d 100644
--- a/src/libGLESv2/Program.h
+++ b/src/libGLESv2/Program.h
@@ -23,6 +23,8 @@
 class FragmentShader;
 class VertexShader;
 
+extern const char * const g_fakepath;
+
 class AttributeBindings
 {
   public:
@@ -36,6 +38,23 @@
     std::set<std::string> mAttributeBinding[MAX_VERTEX_ATTRIBS];
 };
 
+class InfoLog
+{
+  public:
+    InfoLog();
+    ~InfoLog();
+
+    int getLength() const;
+    void getLog(GLsizei bufSize, GLsizei *length, char *infoLog);
+
+    void appendSanitized(const char *message);
+    void append(const char *info, ...);
+    void reset();
+  private:
+    DISALLOW_COPY_AND_ASSIGN(InfoLog);
+    char *mInfoLog;
+};
+
 class Program
 {
   public:
@@ -71,6 +90,7 @@
     void flagForDeletion();
     bool isFlaggedForDeletion() const;
 
+    void validate();
     bool isValidated() const;
 
     unsigned int getSerial() const;
@@ -98,6 +118,8 @@
 
     ResourceManager *mResourceManager;
     const GLuint mHandle;
+
+    InfoLog mInfoLog;
 };
 }