Closed
Bug 1281994
Opened 8 years ago
Closed 8 years ago
Refactor WebGLBuffer::Delete() , using removeFrom to remove WebGLBuffer from WebGLContext's list
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: ethlin, Assigned: ethlin)
References
Details
Attachments
(1 file)
1015 bytes,
patch
|
jgilbert
:
review-
|
Details | Diff | Splinter Review |
We should remove WebGLBuffer from list[1] to prevent the delete order problem.
[1] https://dxr.mozilla.org/mozilla-central/source/dom/canvas/WebGLBuffer.cpp#66
Assignee | ||
Comment 1•8 years ago
|
||
Remove the WebGLBuffer from the list in mContext.
Attachment #8764810 -
Flags: review?(jgilbert)
Comment 2•8 years ago
|
||
Comment on attachment 8764810 [details] [diff] [review]
remove WebGLBuffer from list
Review of attachment 8764810 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/canvas/WebGLBuffer.cpp
@@ +62,5 @@
> mContext->MakeContextCurrent();
> mContext->gl->fDeleteBuffers(1, &mGLName);
> mByteLength = 0;
> mCache = nullptr;
> + LinkedListElement<WebGLBuffer>::removeFrom(mContext->mBuffers);
removeFrom() just has a slightly different assert from remove(), then just calls remove(), so this should have no functional change.
Attachment #8764810 -
Flags: review?(jgilbert) → review-
Assignee | ||
Comment 3•8 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #2)
> Comment on attachment 8764810 [details] [diff] [review]
> remove WebGLBuffer from list
>
> Review of attachment 8764810 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: dom/canvas/WebGLBuffer.cpp
> @@ +62,5 @@
> > mContext->MakeContextCurrent();
> > mContext->gl->fDeleteBuffers(1, &mGLName);
> > mByteLength = 0;
> > mCache = nullptr;
> > + LinkedListElement<WebGLBuffer>::removeFrom(mContext->mBuffers);
>
> removeFrom() just has a slightly different assert from remove(), then just
> calls remove(), so this should have no functional change.
Right, I think we should take it as refactoring. It would be more clear to use removeFrom and all other places in WebGL use removeFrom now[1]. I'll change the title of this bug.
[1] https://dxr.mozilla.org/mozilla-central/search?q=removeFrom+path%3Acanvas&redirect=false
Assignee | ||
Updated•8 years ago
|
Summary: WebGLBuffer should be removed from list in WebGLBuffer::Delete() → Refactor WebGLBuffer::Delete() , using removeFrom to remove WebGLBuffer from WebGLContext's list
Assignee | ||
Comment 4•8 years ago
|
||
(In reply to Ethan Lin[:ethlin] from comment #3)
> (In reply to Jeff Gilbert [:jgilbert] from comment #2)
> > Comment on attachment 8764810 [details] [diff] [review]
> > remove WebGLBuffer from list
> >
> > Review of attachment 8764810 [details] [diff] [review]:
> > -----------------------------------------------------------------
> >
> > ::: dom/canvas/WebGLBuffer.cpp
> > @@ +62,5 @@
> > > mContext->MakeContextCurrent();
> > > mContext->gl->fDeleteBuffers(1, &mGLName);
> > > mByteLength = 0;
> > > mCache = nullptr;
> > > + LinkedListElement<WebGLBuffer>::removeFrom(mContext->mBuffers);
> >
> > removeFrom() just has a slightly different assert from remove(), then just
> > calls remove(), so this should have no functional change.
>
> Right, I think we should take it as refactoring. It would be more clear to
> use removeFrom and all other places in WebGL use removeFrom now[1]. I'll
> change the title of this bug.
>
> [1]
> https://dxr.mozilla.org/mozilla-central/
> search?q=removeFrom+path%3Acanvas&redirect=false
:jgilbert, do you think it's okay to do the refactoring? I think at least it's using the same way as other WebGL objects to do the remove, though the change is small.
Flags: needinfo?(jgilbert)
Comment 5•8 years ago
|
||
(In reply to Ethan Lin[:ethlin] from comment #4)
> (In reply to Ethan Lin[:ethlin] from comment #3)
> > (In reply to Jeff Gilbert [:jgilbert] from comment #2)
> > > Comment on attachment 8764810 [details] [diff] [review]
> > > remove WebGLBuffer from list
> > >
> > > Review of attachment 8764810 [details] [diff] [review]:
> > > -----------------------------------------------------------------
> > >
> > > ::: dom/canvas/WebGLBuffer.cpp
> > > @@ +62,5 @@
> > > > mContext->MakeContextCurrent();
> > > > mContext->gl->fDeleteBuffers(1, &mGLName);
> > > > mByteLength = 0;
> > > > mCache = nullptr;
> > > > + LinkedListElement<WebGLBuffer>::removeFrom(mContext->mBuffers);
> > >
> > > removeFrom() just has a slightly different assert from remove(), then just
> > > calls remove(), so this should have no functional change.
> >
> > Right, I think we should take it as refactoring. It would be more clear to
> > use removeFrom and all other places in WebGL use removeFrom now[1]. I'll
> > change the title of this bug.
> >
> > [1]
> > https://dxr.mozilla.org/mozilla-central/
> > search?q=removeFrom+path%3Acanvas&redirect=false
> :jgilbert, do you think it's okay to do the refactoring? I think at least
> it's using the same way as other WebGL objects to do the remove, though the
> change is small.
I don't think we should bother, since there is only one LinkedList these could be added to, so the assert should not be useful to us. I think it's a little more paranoid than we need.
Flags: needinfo?(jgilbert)
Assignee | ||
Updated•8 years ago
|
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•