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