Replaced raw pointers to RefCountObject to BindingPointer.

This fixes the ANGLE crashes in Chrome when using canvas 2D.

The issue was this:

Renderbuffer *mColorbufferProxy = new RenderBuffer(...); // Reference count is zero.

BindingPointer<RenderBuffer> tempRef;
tempRef.set(mColorbufferProxy); // Reference count is one.

tempRef.set(NULL); // Reference count is zero and object is destroyed, leaving mColorbufferProxy dangling.

I also initially suspected the problem was that FBOs are not treated as shared and the implementation of shared FBOs is still in the patch. I believe GLES2 supports shared FBOs.

My reading of the GLES2 spec is that when a shared object is deleted, it loses its id but retains its state if left bound elsewhere. I added that to RefCountObject.



Review URL: http://codereview.appspot.com/2120045

git-svn-id: https://angleproject.googlecode.com/svn/trunk@417 736b8ea6-26fd-11df-bfd4-992fa37f6226
9 files changed