[climacs-devel] redisplay bug?

Aleksandar Bakic a_bakic at yahoo.com
Thu Jan 6 10:48:47 UTC 2005


Hi,

I am testing an implementation of a buffer that uses a persistent data
structure. This buffer's size changes with every operation (insert, delete) and
there are no gaps. I noticed the following: when I start Climacs using this
buffer type, enter "123", then delete the "3", I get the error below. I traced
my buffer and it seems fine; I just do not know why Climacs tries to get an
object at offset 2 once there are only two letters in the buffer ("12"). I will
try to see if the problem is on my part (as I had to modify Climacs code to fit
my buffer type in) but perhaps someone more familiar with the redisplay code
may want to take a look.

Thanks,
Alex

No such offset: 2
   [Condition of type CLIMACS-BUFFER:NO-SUCH-OFFSET]

Restarts:
  0: [CONTINUE] Retry assertion.
  1: [ABORT] Abort handling SLIME request.
  2: [ABORT] Return to Top-Level.

Backtrace:
  0: (LISP::ASSERT-ERROR (<= 0 CLIMACS-BUFFER:OFFSET (1- #)) NIL
#<CLIMACS-BUFFER:NO-SUCH-OFFSET {5A341FC5}>)
  1: ((METHOD CLIMACS-BUFFER:BUFFER-OBJECT NIL (CLIMACS-BUFFER:BINSEQ-BUFFER
T)) (#(7) . #(#)) #<unused-arg> #<CLIMACS-GUI::CLIMACS-BUFFER {5A17B53D}> 2)
  2: (CLIMACS-BASE::BUFFER-NUMBER-OF-LINES-IN-REGION
#<CLIMACS-GUI::CLIMACS-BUFFER {5A17B53D}> 2 3)
  3: ((METHOD CLIMACS-SYNTAX::COMPUTE-CACHE NIL (T
CLIMACS-SYNTAX:BASIC-SYNTAX)) (#(2 8 1) . #()) #<unused-arg>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}>
#<CLIMACS-SYNTAX:TEXINFO-SYNTAX {5A17BE05}>)
  4: ((METHOD CLIMACS-SYNTAX:REDISPLAY-WITH-SYNTAX NIL (T
CLIMACS-SYNTAX:BASIC-SYNTAX)) (#(8 4 5 3 1) . #()) #<unused-arg>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}>
#<CLIMACS-SYNTAX:TEXINFO-SYNTAX {5A17BE05}>)
  5: ((METHOD CLIM:INVOKE-WITH-NEW-OUTPUT-RECORD NIL
(CLIM:OUTPUT-RECORDING-STREAM T T T)) (#() . #(#)) #<unused-arg>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}> #<Closure Over
Function (FLET #:CONTINUATION14 CLIM-INTERNALS::%INVOKE-UPDATING) {5A341429}>
...)
  6: (CLIM-INTERNALS::%INVOKE-UPDATING #<CLIM:STANDARD-UPDATING-OUTPUT-RECORD X
0:0 Y -3.5:-3.5 :UPDATING CLIM-INTERNALS::TOP-LEVEL {5A24115D}>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}> #<Closure Over
Function (FLET #:UPDATING-OUTPUT-CONTINUATION39) {5A2407E9}>)
  7: ((METHOD CLIM-INTERNALS::COMPUTE-NEW-OUTPUT-RECORDS-1 NIL
(CLIM:STANDARD-UPDATING-OUTPUT-RECORD T T)) (#(4 NIL 4 23) . #(# #))
#<unused-arg> #<CLIM:STANDARD-UPDATING-OUTPUT-RECORD X 0:0 Y -3.5:-3.5
:UPDATING CLIM-INTERNALS::TOP-LEVEL {5A24115D}> #<CLIMACS-GUI::CLIMACS-PANE
CLIMACS-GUI::WIN {5A17AD85}> ...)
  8: ((FLET #:CONTINUATION0) #<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN
{5A17AD85}>)
  9: ((METHOD CLIM:INVOKE-WITH-OUTPUT-RECORDING-OPTIONS NIL
(CLIM:OUTPUT-RECORDING-STREAM T T T)) #<#1=unused-arg> #<#1#>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}> #<Closure Over
Function (FLET #:CONTINUATION0) {5A3412E1}> ...)
  10: ((METHOD CLIM:REDISPLAY-OUTPUT-RECORD NIL (CLIM:UPDATING-OUTPUT-RECORD
CLIM-INTERNALS::UPDATING-OUTPUT-STREAM-MIXIN)) (#(20) . #(# # #)) #<unused-arg>
#<CLIM:STANDARD-UPDATING-OUTPUT-RECORD X 0:0 Y -3.5:-3.5 :UPDATING
CLIM-INTERNALS::TOP-LEVEL {5A24115D}> #<CLIMACS-GUI::CLIMACS-PANE
CLIMACS-GUI::WIN {5A17AD85}> ...)
  11: ((METHOD CLIM:REDISPLAY-FRAME-PANE (:AROUND) (CLIM:APPLICATION-FRAME T))
(#(21 21) . #()) #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function (METHOD
CLIM:REDISPLAY-FRAME-PANE NIL #) {58C86E61}> :PV-CELL (# . #) :NEXT-METHOD-CALL
#S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL # :ARG-INFO
#) :ARG-INFO (2 . T)) #<CLIMACS-GUI::CLIMACS {5A17848D}>
#<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN {5A17AD85}> ...)
  12: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIMACS-GUI::CLIMACS-PANE CLIMACS-GUI::WIN
{5A17AD85}>)
  13: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIM-EXTENSIONS:VIEWPORT-PANE "(Unnamed
Pane)" {5A18538D}>)
  14: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIM:SCROLLER-PANE "(Unnamed Pane)"
{5A1865F5}>)
  15: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIM:VRACK-PANE "(Unnamed Pane)"
{5A18B195}>)
  16: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIM:VRACK-PANE "(Unnamed Pane)"
{5A18C5ED}>)
  17: ((METHOD CLIM:MAP-OVER-SHEETS NIL (T CLIM:BASIC-SHEET)) (#() . #(#))
#<unused-arg> #<Closure Over Function "DEFMETHOD REDISPLAY-FRAME-PANES
(APPLICATION-FRAME)" {5A3340B1}> #<CLIM-INTERNALS::TOP-LEVEL-SHEET-PANE
CLIM-INTERNALS::TOP-LEVEL-SHEET {5A1799CD}>)
  18: ("LAMBDA (.KEYARGS-START. .VALID-KEYS. G7513 G7514 G7515)"
#<#1=unused-arg> #<#1#> #<CLIMACS-GUI::CLIMACS {5A17848D}> NIL)
  19: (CLIMACS-GUI::CLIMACS-TOP-LEVEL #<CLIMACS-GUI::CLIMACS {5A17848D}>
:COMMAND-PARSER #<unused-arg> :COMMAND-UNPARSER ...)
  20: ((METHOD CLIM:RUN-FRAME-TOP-LEVEL NIL (CLIM:APPLICATION-FRAME)) (#(20) .
#()) #<#1=unused-arg> #<CLIMACS-GUI::CLIMACS {5A17848D}> #<#1#>)
  21: ((METHOD CLIM:RUN-FRAME-TOP-LEVEL (:AROUND) #1=(CLIM:APPLICATION-FRAME))
(#(16 15) . #(#)) #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function (METHOD
CLIM:RUN-FRAME-TOP-LEVEL NIL #1#) {58C6A3E9}> :PV-CELL (# . #)
:NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLIMACS-GUI::CLIMACS {5A17848D}>
NIL)
  22: (SWANK::EVAL-REGION "(climacs-gui::climacs)
" T)
  23: ("DEFSLIMEFUN LISTENER-EVAL")
  24: (SWANK:LISTENER-EVAL "(climacs-gui::climacs)



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 




More information about the climacs-devel mailing list