> checking the ID would be better.

No, actually checking `id` is essential.  I didn't really realise how much 
until now.  Consider for example the sequence:

1. Geany function gets `doc` pointer
2. does something that results in a signal
3. plugin callback is called by signal and it closes the document Geany's `doc` 
points to
4. plugin opens a new document and it happens to reuse the document object that 
Geany's `doc` points to
5. signal returns to Geany

So now, unless Geany checks both `valid` and `id` it will not know its `doc` 
points to something different to what it thinks.  

After finding `id` is different it probably shouldn't do anything.

And of course the sequence above is just one way for it to happen.

But I suspect a lot of Geany doesn't check `id`, maybe IS_VALID should take id 
as a parameter.  And even better it can be made a function not an EVIL macro!!!



-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3872#issuecomment-2106230274
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/issues/3872/2106230...@github.com>

Reply via email to