Am 27.08.2014 um 18:48 schrieb [email protected]: > Hello, > > i thought that accessing an array out of it's dimension would lead to a > segfault in the header of the loop. > > But reading your last mails I compiled the code with the original expression > in the head of the for-loop > > and put NSLog(@"---i=%i---",i) right at the beginning of the body. > > > > - (void)unhighlightCharacter: (NSTextView *)editorView > { > int i; > NSTextStorage *textStorage = [editorView textStorage]; > > > [textStorage beginEditing]; > > > // if (isCharacterHighlit) > for (i = 0; (highlited_chars[i] != -1 && i < 2); i++) > { > NSLog(@"---i=%i---",i); > NSRange r = NSMakeRange(highlited_chars[i], 1); > // NSRange r = NSMakeRange(highlitCharacterLocation, i); > > > ... > > > > > > output of PC when clicking on a parenthesis: > > openapp ProjectCenter > 2014-08-27 18:37:08.045 ProjectCenter[9823] final candidate path is: > /usr/local/bin/gmake > 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: > /usr/bin/gmake > 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: > /usr/local/bin/make > 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: > /usr/bin/make > 2014-08-27 18:37:08.046 ProjectCenter[9823] Build tool found: /usr/bin/make > 2014-08-27 18:37:08.064 ProjectCenter[9823] final candidate path is: > /usr/local/bin/gdb > 2014-08-27 18:37:08.064 ProjectCenter[9823] final candidate path is: > /usr/bin/gdb > 2014-08-27 18:37:08.065 ProjectCenter[9823] Debugger tool found: /usr/bin/gdb > 2014-08-27 18:37:08.129 ProjectCenter[9823] NSDocumentClass PCProjectDocument > not found > 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCProjectDocument > not found > 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCClassDocument > not found > 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCHeaderDocument > not found > 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCCDocument not > found > 2014-08-27 18:37:12.496 ProjectCenter[9823] [click] category: Classes > forProject: TestPCColors fileName: (null) > 2014-08-27 18:37:13.066 ProjectCenter[9823] [click] category: Classes > forProject: TestPCColors fileName: AppController.m > 2014-08-27 18:37:13.066 ProjectCenter[9823] [click] category: Classes > filePath: /Classes/AppController.m/ > 2014-08-27 18:37:13.067 ProjectCenter[9823] Opening new editor. Editor: > ProjectCenter > 2014-08-27 18:37:13.073 ProjectCenter[9823] PCProjectEditor editorDidOpen! > 2014-08-27 18:37:13.165 ProjectCenter[9823] PCPE: categoryPath - > /Classes/AppController.m/ > 2014-08-27 18:37:13.165 ProjectCenter[9823] PCEditor: asked for browser items > for: AppController.m > 2014-08-27 18:37:13.166 ProjectCenter[9823] Class> {ClassBodyRange = > "{location=193, length=988}"; ClassName = "@AppController"; ClassNameRange = > "{location=179, length=13}"; } > 2014-08-27 18:37:13.354 ProjectCenter[9823] ClassHandler: dealloc > 2014-08-27 18:37:14.579 ProjectCenter[9823] ---i=0--- > 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=1--- > 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=2--- > 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=3--- > Speicherzugriffsfehler (Speicherabzug geschrieben) > > I expected that i could never get greater than 1 in the body of the loop as > the boolean expression > must return false when i reaches 2. I ran this several times and i always > reaches 3 bevor the segfault > occurs.
That looks like a serious bug in your compiler then. Your reasoning is right, the body should not be entered with any value of i greater than 1 and if it does the compiler is generating incorrect code. Wolfgang _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
