[Geany-Devel] [ANN] document_find_by_id() added to plugin API

Frank Lanitz frank at xxxxx
Thu Sep 4 17:42:34 UTC 2014


Am 04.09.2014 um 01:00 schrieb Lex Trotman:
> On 4 September 2014 08:41, Frank Lanitz <frank at 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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.geany.org/pipermail/devel/attachments/20140904/5b5f5bde/attachment.sig>


More information about the Devel mailing list