Hi Moritz!
At the moment I fight against segmentation fault. For unknown reasons clang_getLocationForOffset () fails sometimes [1]. Maybe I forgot to allocate something?
Don't know the exact reason but a couple of things come into my mind: if (unsavedContent) { DEBUG_PRINT ("Reparse code with unsaved content."); numUnsaved = 1; // use unsaved = g_new0(CXUnsavedFile, 2) instead unsaved = g_malloc (2 * sizeof (struct CXUnsavedFile)); unsaved[0].Filename = assist->priv->editor_filename; unsaved[0].Contents = unsavedContent; // Are you sure you need the utf8 length? That gives you the number of characters but not the number of bytes allocated. I am quite sure you need strlen() here. This could be the reason for the segmentation fault unsaved[0].Length = g_utf8_strlen (unsavedContent, -1); // Any reason to do this? Anyway, with g_new0 you won't have to because all memory will be initialized with NULL. unsaved[1].Filename = NULL; unsaved[1].Contents = NULL; unsaved[1].Length = 0; } const gchar* unsavedContent = ianjuta_editor_get_text_all ( IANJUTA_EDITOR (assist->priv->iassist), NULL); The return value here is non-const, you will need to free that data at some point (when destroying the unsaved[] structure for example). If you don't find a solution, try to create a simple test program that you can run with valgrind. You can run anjuta in valgrind but it's damn slow - it gives good results usually though. Regards, Johannes
Attachment:
signature.asc
Description: This is a digitally signed message part