[Top][All Lists]
[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.