[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#44724: Uninitialised variables in syntax.c cause trouble.
From: |
Alan Mackenzie |
Subject: |
bug#44724: Uninitialised variables in syntax.c cause trouble. |
Date: |
Thu, 19 Nov 2020 16:30:32 +0000 |
Hello, Martin.
On Thu, Nov 19, 2020 at 09:25:50 +0100, martin rudalics wrote:
> >> Just curious: Did current_buffer == find_start_buffer really succeed
> >> in your scenario?
> > Yes it did. All four comparisons in that block of code succeeded,
> > causing a spurious value to be returned by find_defun_start.
> Isn't the probability for such a thing to be caused by uninitialized
> variables lower than that of the Emacs tagging scheme to fail as a
> whole?
Yes.
> > But now I think that that value was a previously valid one which just
> > hadn't been updated on buffer changes.
> > I don't think there's any cache invalidation code associated with this
> > cache,
> MODIFF == find_start_modiff
Yes, thanks, I was wrong there.
> > and I think that's why it gave an invalid result.
I've found out what my problem is. find_defun_start, unless one takes
precautions against it, calls syntax-ppss, which in my situation was
uninitialised. There is nothing in Emacs to cause the initialisation of
syntax-ppss when, say, the syntax-table is changed. It all needs to be
done by hand.
I'll close this bug as not a bug.
Thanks for all the help!
> martin
--
Alan Mackenzie (Nuremberg, Germany).