Hi,
I have no idea why, but for some reason if I have my filetype set to C, with my Geany API tags loaded (and the other ones from the Wiki), when I typed the following, I get Geany locking up:
GeanyDocument *doc; doc = document_get_current(); doc->file_type-[AND_GEANY_FREEZES_HERE]
Not sure how to even troubleshoot this, but I did run it in gdb and killed it during the infinite loop, and it's stuck calling `tm_tag.c:tm_tags_find()` over and over again (I put a print statement here). When I kill it, it's always stuck in that function or `bsearch()` function which that one calls. So I think it's something that's calling the `tm_tag.c:tm_tags_find()` function in an infinite loop.
I did try and revert to before the most recent changes to the TagManager stuff[1] and it seemed to still happen, so I don't think it's related. I've disabled all but the Class Build and Split Window plugins. Is it possibly something with corrupted tag files or similar?
Otherwise, I'll just chock it up to a random fluke and use this work-around:
GeanyDocument *doc; GeanyFiletype *ft; doc = document_get_current(); ft = doc->file_type; ft->file_type-[AND_IT_DOESNT_FREEZE ANYMORE]
[1] http://git.geany.org/geany/commit/?id=b1ce79efed2ecd460b83a22daa610192abb6ef...
Cheers, Matthew Brush
On 19 August 2011 20:16, Matthew Brush mbrush@codebrainz.ca wrote:
Hi,
I have no idea why, but for some reason if I have my filetype set to C, with my Geany API tags loaded (and the other ones from the Wiki), when I typed
Can you narrow it down to one tags file, and maybe see if regenerating it helps? Also what happens if you turn off auto tags and then type to there and save?
the following, I get Geany locking up:
GeanyDocument *doc; doc = document_get_current(); doc->file_type-[AND_GEANY_FREEZES_HERE]
Not sure how to even troubleshoot this, but I did run it in gdb and killed it during the infinite loop, and it's stuck calling `tm_tag.c:tm_tags_find()` over and over again (I put a print statement here). When I kill it, it's always stuck in that function or `bsearch()` function which that one calls. So I think it's something that's calling the `tm_tag.c:tm_tags_find()` function in an infinite loop.
Whats the back trace when you kill it in gdb?
I did try and revert to before the most recent changes to the TagManager stuff[1] and it seemed to still happen, so I don't think it's related. I've disabled all but the Class Build and Split Window plugins. Is it possibly something with corrupted tag files or similar?
Otherwise, I'll just chock it up to a random fluke and use this work-around:
GeanyDocument *doc; GeanyFiletype *ft; doc = document_get_current(); ft = doc->file_type; ft->file_type-[AND_IT_DOESNT_FREEZE ANYMORE]
Thats not actually the same code though, its doc->file_type->file_type- ?
Cheers Lex
[1] http://git.geany.org/geany/commit/?id=b1ce79efed2ecd460b83a22daa610192abb6ef...
Cheers, Matthew Brush
Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
On 08/19/2011 04:53 AM, Lex Trotman wrote:
On 19 August 2011 20:16, Matthew Brushmbrush@codebrainz.ca wrote:
Hi,
I have no idea why, but for some reason if I have my filetype set to C, with my Geany API tags loaded (and the other ones from the Wiki), when I typed
Can you narrow it down to one tags file, and maybe see if regenerating it helps? Also what happens if you turn off auto tags and then type to there and save?
I just tried moving my old config dir out of the way to let a blank one be made, it didn't freeze, I then loaded geany-0.19.c.api and geany.vala.tags files, it still didn't freeze.
So I'm not really sure what it is.
the following, I get Geany locking up:
GeanyDocument *doc; doc = document_get_current(); doc->file_type-[AND_GEANY_FREEZES_HERE]
Not sure how to even troubleshoot this, but I did run it in gdb and killed it during the infinite loop, and it's stuck calling `tm_tag.c:tm_tags_find()` over and over again (I put a print statement here). When I kill it, it's always stuck in that function or `bsearch()` function which that one calls. So I think it's something that's calling the `tm_tag.c:tm_tags_find()` function in an infinite loop.
Whats the back trace when you kill it in gdb?
Attached.
I did try and revert to before the most recent changes to the TagManager stuff[1] and it seemed to still happen, so I don't think it's related. I've disabled all but the Class Build and Split Window plugins. Is it possibly something with corrupted tag files or similar?
Otherwise, I'll just chock it up to a random fluke and use this work-around:
GeanyDocument *doc; GeanyFiletype *ft; doc = document_get_current(); ft = doc->file_type; ft->file_type-[AND_IT_DOESNT_FREEZE ANYMORE]
Thats not actually the same code though, its doc->file_type->file_type- ?
Sorry, that was a typo:
ft->[ANYTHING_AND_IT_DOESNT_FREEZE]
When it's a member of a GeanyDocument, as soon as you hit the `>` after `doc->file_type-` (presumably when it does a lookup), is when it locks up.
Cheers, Matthew Brush
Le 19/08/2011 12:16, Matthew Brush a écrit :
Hi,
I have no idea why, but for some reason if I have my filetype set to C, with my Geany API tags loaded (and the other ones from the Wiki), when I typed the following, I get Geany locking up:
GeanyDocument *doc; doc = document_get_current(); doc->file_type-[AND_GEANY_FREEZES_HERE]
[...]
I'm afraid it will be related to (currently broken) scope completion. Unfortunately I couldn't understand the tagmanager code for this yet -- though I ended up with an almost-working re-implementation of the thing last time I tried to fix scope completion... I should take some (a lot of) time on this, maybe it'd fix this too.
Looks sensible if it is the scope completion?
Cheers, Colomban