emacs-devel
[Top][All Lists]
Advanced

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

Re: Is this a bug in overlay property list handling?


From: Stefan Monnier
Subject: Re: Is this a bug in overlay property list handling?
Date: Tue, 03 Jun 2008 10:37:06 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

> I am not sure if I have hit a bug or if I am doing something wrong. I do
> something like this in my code:

>   (setq syntax-ppss-last-min
>         (copy-tree
>          (cons (1- last-pos)
>                (if is-main-mode-chunk
>                    (mumamo-with-major-mode-fontification main-major
>                      `(parse-partial-sexp (point-min) last-pos))
>                  (parse-partial-sexp 1 1)))
>          ))
>   (overlay-put chunk-at-pos 'syntax-ppss-last-min syntax-ppss-last-min)

> If I test this immediately after with `overlay-get' the value looks ok.

> However, later when I read these values with `overlay-get' it seems like the
> property list has got corrupted. The car of the value stored in property
> syntax-ppss-last-min is nil.

> I use copy-tree to try to avoid surprices like this one.

The `cons' already makes sure you have the only reference to the object
and parse-partial-sexp also returns a fresh value, so the `copy-tree' is
not needed.

> Maybe I should do something different? Maybe this is a bug in overlay
> property list handling?

I'd be very surprised if it's a bug in overlay property handling.
My guess is that it's a bug elsewhere in your code.


        Stefan


PS: BTW, please avoid using `1' instead of (point-min), or else add
a comment explaining why (point-min) is not right.  Also the
`(parse-partial-sexp (point-min) last-pos) looks odd: you probably
forgot a comma before `last-pos'.
Maybe mumamo-with-major-mode-fontification should be a macro rather than
a function.




reply via email to

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