bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#29348: 26.0.50; shr.el heisenbug


From: Devon Sean McCullough
Subject: bug#29348: 26.0.50; shr.el heisenbug
Date: Sun, 19 Nov 2017 18:56:14 -0500

cd /tmp
cURL -O http://jovi.net/shr.txz
tar -xp < shr.txz
cd shr
Open -n -a Emacs --args -Q --funcall toggle-debug-on-error --chdir /tmp/shr 
CNWebGL.js --load opengl-help.el --load shr-bug.el --funcall shr-trace

In the CNWebGL.js buffer, press the [f12] function key to view the next OpenGL 
call with documentation...
The first keypress or so should produce a good *Help* buffer with a proper 
title and name
but after three or four keypresses, mangled *Help* buffers will appear
with the C prototype at the top and the title at the bottom
because the table renderer bashed point in *Help*.

Example with annotated trace:

 CNWebGL.js
        gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);

 *Help*
 void glClear(  GLbitfield mask);  
 
Parameters
... here follows the rest of the doc ... then finally the misplaced first few 
lines:
glClear

Name

glClear — clear buffers to preset values

C Specification

 *trace-output*
======================================================================
1 -> (shr-render-region 1 6499) 20171119-164938.962420 
•*Help*…❮6499❯⊢⧉CNWebGL.js…      gl.❮4220❯clear(gl.COLO…

| 2 -> (shr-pixel-column) 20171119-164938.963020 *Help*⊣❮1❯⊢• 
*temp*⊣-⊂2⊃⊢⧉CNWebGL.js…  gl.❮4220❯clear(gl.COLO…
| | 3 -> (current-window-configuration) 20171119-164938.963084 *Help*⊣❮1❯⊢• 
*temp*⊣-⊂2⊃⊢⧉CNWebGL.js…    gl.❮4220❯clear(gl.COLO…
| | 3 <- current-window-configuration: #<window-configuration> 
20171119-164938.963137 *Help*⊣❮1❯⊢• *temp*⊣-⊂2⊃⊢⧉CNWebGL.js…     
gl.❮4220❯clear(gl.COLO…
| | 3 -> (set-window-configuration #<window-configuration>) 
20171119-164938.963212 *Help*⊣❮1❯⊢⧉• *temp*⊣-❮2❯⊢
;;; moot
| | 3 <- set-window-configuration: t 20171119-164938.963316 *Help*⊣❮1❯⊢• 
*temp*⊣-⊂2⊃⊢⧉CNWebGL.js…       gl.❮4220❯clear(gl.COLO…
| 2 <- shr-pixel-column: 7 20171119-164938.963362 *Help*⊣❮1❯⊢• 
*temp*⊣-⊂2⊃⊢⧉CNWebGL.js… gl.❮4220❯clear(gl.COLO…

| 2 -> (shr-pixel-column) 20171119-164938.963420 *Help*⊣❮1❯⊢• *temp*⊣* 
⊂3⊃⊢⧉CNWebGL.js… gl.❮4220❯clear(gl.COLO…
| | 3 -> (current-window-configuration) 20171119-164938.963468 *Help*⊣❮1❯⊢• 
*temp*⊣* ⊂3⊃⊢⧉CNWebGL.js…   gl.❮4220❯clear(gl.COLO…
| | 3 <- current-window-configuration: #<window-configuration> 
20171119-164938.963513 *Help*⊣❮1❯⊢• *temp*⊣* ⊂3⊃⊢⧉CNWebGL.js…    
gl.❮4220❯clear(gl.COLO…
| | 3 -> (set-window-configuration #<window-configuration>) 
20171119-164938.963570 *Help*⊣❮1❯⊢⧉• *temp*⊣* ❮3❯⊢
;;; moot
| | 3 <- set-window-configuration: t 20171119-164938.963660 *Help*⊣❮1❯⊢• 
*temp*⊣* ⊂3⊃⊢⧉CNWebGL.js…      gl.❮4220❯clear(gl.COLO…
| 2 <- shr-pixel-column: 14 20171119-164938.963702 *Help*⊣❮1❯⊢• *temp*⊣* 
⊂3⊃⊢⧉CNWebGL.js…       gl.❮4220❯clear(gl.COLO…

| 2 -> (shr-render-td-1 (td nil (code ((class . "funcdef")) "void " (strong 
((class . "fsfunc")) "glClear") "(")) 325 nil) 20171119-164938.963916 
•*Help*…❮75❯⊢⧉CNWebGL.js…     gl.❮4220❯clear(gl.COLO…
| | 3 -> (current-window-configuration) 20171119-164938.964003 *Help*…❮75❯⊢• 
*temp*⊣void glClear(⊂14⊃⊢⧉CNWebGL.js…      gl.❮4220❯clear(gl.COLO…
| | 3 <- current-window-configuration: #<window-configuration> 
20171119-164938.964067 *Help*…❮75❯⊢• *temp*⊣void glClear(⊂14⊃⊢⧉CNWebGL.js…      
 gl.❮4220❯clear(gl.COLO…
| | 3 -> (shr-pixel-buffer-width) 20171119-164938.964130 *Help*…❮75❯⊢⧉• 
*temp*⊣void glClear(❮14❯⊢
| | 3 <- shr-pixel-buffer-width: 71 20171119-164938.964196 *Help*…❮75❯⊢⧉• 
*temp*⊣void glClear(❮14❯⊢
| | 3 -> (set-window-configuration #<window-configuration>) 
20171119-164938.964238 *Help*…❮75❯⊢⧉• *temp*⊣void glClear(❮14❯⊢

;;; ***BUG***
;;; Before
;;;     *Help* is visible in the other window
;;;      *temp* is the current buffer in the selected window, presumably 
undisplayed but hypothetically "visible"
;;;     CNWebGL.js is neither current nor visible in any window
;;; *** `set-window-configuration' clobbers *Help* point from 75 at EoB to 1 at 
BoB ***
;;; After
;;;     *Help* is visible in the other window
;;;      *temp* is the current buffer not visible in any window
;;;     CNWebGL.js is visible in the selected window
;;; ***BUG***

| | 3 <- set-window-configuration: t 20171119-164938.964342 *Help*⊣❮1❯glClear…• 
*temp*⊣void glClear(⊂14⊃⊢⧉CNWebGL.js…   gl.❮4220❯clear(gl.COLO…
| 2 <- shr-render-td-1: (71 71 1 (#("void glClear(" 0 1 (face variable-pitch 
shr-indentation 0) 1 5 (face variable-pitch) 5 12 (face (variable-pitch bold)) 
12 13 (face variable-pitch))) 1 nil nil) 20171119-164938.964426 
•*Help*⊣❮1❯glClear…⧉CNWebGL.js…     gl.❮4220❯clear(gl.COLO…

| 2 -> (shr-render-td-1 (td nil "GLbitfield " (var ((class . "pdparam")) 
"mask") (code nil ")") ";") 325 nil) 20171119-164938.964499 
•*Help*⊣❮1❯glClear…⧉CNWebGL.js…    gl.❮4220❯clear(gl.COLO…
| | 3 -> (current-window-configuration) 20171119-164938.964583 
*Help*⊣❮1❯glClear…• *temp*…tfield mask);⊂18⊃⊢⧉CNWebGL.js…        
gl.❮4220❯clear(gl.COLO…
| | 3 <- current-window-configuration: #<window-configuration> 
20171119-164938.964688 *Help*⊣❮1❯glClear…• *temp*…tfield 
mask);⊂18⊃⊢⧉CNWebGL.js… gl.❮4220❯clear(gl.COLO…
| | 3 -> (shr-pixel-buffer-width) 20171119-164938.964759 *Help*⊣❮1❯glClear…⧉• 
*temp*…tfield mask);❮18❯⊢
| | 3 <- shr-pixel-buffer-width: 91 20171119-164938.964837 *Help*⊣❮1❯glClear…⧉• 
*temp*…tfield mask);❮18❯⊢
| | 3 -> (set-window-configuration #<window-configuration>) 
20171119-164938.964888 *Help*⊣❮1❯glClear…⧉• *temp*…tfield mask);❮18❯⊢
;;; equivocal
| | 3 <- set-window-configuration: t 20171119-164938.964996 *Help*⊣❮1❯glClear…• 
*temp*…tfield mask);⊂18⊃⊢⧉CNWebGL.js…   gl.❮4220❯clear(gl.COLO…
| 2 <- shr-render-td-1: (91 91 1 (#("GLbitfield mask);" 0 1 (face 
variable-pitch shr-indentation 0) 1 11 (face variable-pitch) 11 15 (face 
variable-pitch) 15 16 (face variable-pitch) 16 17 (face variable-pitch))) 1 nil 
nil) 20171119-164938.965075 •*Help*⊣❮1❯glClear…⧉CNWebGL.js…  
gl.❮4220❯clear(gl.COLO…

1 <- shr-render-region: nil 20171119-164938.968888 
•*Help*…❮1669❯glClear…⧉CNWebGL.js…   gl.❮4220❯clear(gl.COLO…






reply via email to

[Prev in Thread] Current Thread [Next in Thread]