Am 04.09.2014 um 01:00 schrieb Lex Trotman:
> On 4 September 2014 08:41, Frank Lanitz <fr...@frank.uvena.de> wrote:
>> Am 29.08.2014 um 12:58 schrieb Nick Treleaven:
>>> On 28/08/2014 16:21, Nick Treleaven wrote:
>>>> Code that uses doc->is_valid or DOC_VALID() outside of iterating
>>>> documents_array probably should be using document_find_by_id() instead,
>>>> because closed document pointers only stay invalid until another
>>>> document needs to be opened.
>>>
>>> Additional: if there is no chance of another document having been opened
>>> since, but there is a chance a document was closed, it should be fine to
>>> check doc->is_valid.
>>
>> Do I understand you correct, that it would make sense to recheck every
>> plugin and in most cases replace(update the document-checks there?
> 
> Hi Frank,
> 
> Yes, anywhere Geany or a plugin releases control (eg returns from a
> callback, opens a dialog) and then gets control back (eg another
> callback, returns from the dialog) there can be any amount of unknown
> changes to documents in between.  They can be closed, new ones opened
> etc.
> 
> This may re-use document memory, so the doc pointer may point to a
> completely different document.
> 
> To ensure that the same *document* continues to be accessed the id
> should be used and re-converted to a doc pointer each time control is
> returned.

Got it. Will need to check the plugins. At least in mine I've got a log
of ->is_valid calls ...

cheers,
Frank


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to