Closed Bug 999687 Opened 11 years ago Closed 11 years ago

Some arguments are treated as enums when they shouldn't be

Categories

(DevTools Graveyard :: Canvas Debugger, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 33

People

(Reporter: vporof, Assigned: jsantell)

References

Details

Attachments

(1 file, 1 obsolete file)

Like, in the case of vertexAttribPointer or disable/enableVertexAttribArray. The arg is a simple int, not an enum.
Assignee: nobody → jsantell
Good picks for the 2D context Jordan. Here are the ones for WebGL, the enum params being named `enum`. * activeTexture(enum); * bindBuffer(enum, WebGLBuffer); * bindFramebuffer(enum, WebGLFramebuffer); * bindRenderbuffer(enum, WebGLRenderbuffer); * bindTexture(enum, WebGLTexture); * blendEquation(enum); * blendEquationSeparate(enum, enum); * blendFunc(enum, enum); * blendFuncSeparate(enum, enum, enum, enum); * bufferData(enum, enum, enum); * bufferData(enum, ArrayBufferView, enum); * bufferData(enum, ArrayBuffer, enum); * bufferSubData(enum, enum, ArrayBufferView); * bufferSubData(enum, enum, ArrayBuffer); * checkFramebufferStatus(enum); * clear(unsigned enum); * compressedTexImage2D(enum, int, enum, int, int, int, ArrayBufferView); * compressedTexSubImage2D(enum, int, int, int, int, int, enum, ArrayBufferView); * copyTexImage2D(enum, int, enum, int, int, int, int, int); * copyTexSubImage2D(enum, int, int, int, int, int, int, int); * createShader(enum); * cullFace(enum); * depthFunc(enum); * disable(enum); * drawArrays(enum, int, int); * drawElements(enum, int, enum, int); * enable(enum); * framebufferRenderbuffer(enum, enum, enum, WebGLRenderbuffer); * framebufferTexture2D(enum, enum, enum, WebGLTexture, int); * frontFace(enum); * generateMipmap(enum); * getBufferParameter(enum, enum); * getParameter(enum); * getError(); * getFramebufferAttachmentParameter(enum, enum, enum); * getProgramParameter(WebGLProgram, enum); * getRenderbufferParameter(enum, enum); * getShaderParameter(WebGLShader, enum); * getShaderPrecisionFormat(enum, enum); * getTexParameter(enum, enum); * getVertexAttrib(uint, enum); * getVertexAttribOffset(uint, enum); * hint(enum, enum); * isEnabled(enum); * pixelStorei(enum, int); * readPixels(int, int, int, int, enum, enum, ArrayBufferView); * renderbufferStorage(enum, enum, int, int); * stencilFunc(enum, int, uint); * stencilFuncSeparate(enum, enum, int, uint); * stencilMaskSeparate(enum, uint); * stencilOp(enum, enum, enum); * stencilOpSeparate(enum, enum, enum, enum); * texImage2D(enum, int, enum, int, int, int, enum, enum, ArrayBufferView); * texImage2D(enum, int, enum, enum, enum, ImageData); * texImage2D(enum, int, enum, enum, enum, HTMLImageElement); * texImage2D(enum, int, enum, enum, enum, HTMLCanvasElement); * texImage2D(enum, int, enum, enum, enum, HTMLVideoElement); * texParameterf(enum, enum, float); * texParameteri(enum, enum, int); * texSubImage2D(enum, int, int, int, int, int, enum, enum, ArrayBufferView); * texSubImage2D(enum, int, int, int, enum, enum, ImageData); * texSubImage2D(enum, int, int, int, enum, enum, WebGLUniformLocation, float); * vertexAttribPointer(uint, int, enum, bool, int, int);
Clarification for the above list: * clear(unsigned enum); // takes a single enum parameter * getError(); // actually returns an enum, so we don't really need to handle this one
dang.
A working idea. How do you like this? Anything else it needs?
Attachment #8446907 - Flags: review?(vporof)
Blocks: 978964
Comment on attachment 8446907 [details] [diff] [review] 999687-enum-canvas-debugger.patch Review of attachment 8446907 [details] [diff] [review]: ----------------------------------------------------------------- I am thoroughly satisfied. A better test would've been one one with some WebGL calls and actual enums, but we have DRAWWINDOW_DRAW_VIEW == 4 which is ok. Maybe you should assert this in the test, so if this enum's value ever changes (it's non-standard after all) then this test gets updated. ::: toolkit/devtools/server/actors/call-watcher.js @@ +220,5 @@ > return "Object"; > } > + // If this argument matches the method's signature > + // and is an enum, change it to its constant name. > + if (enumArgs && ~enumArgs.indexOf(i)) { Fun, but is == -1 really that ugly? :P
Attachment #8446907 - Flags: review?(vporof) → review+
Fine, fine, we'll settle for == -1
Attachment #8446907 - Attachment is obsolete: true
Attachment #8447349 - Flags: review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team]
Target Milestone: --- → Firefox 33
Product: Firefox → DevTools
Product: DevTools → DevTools Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: