Introjucer crash


#1

Hello guys !

I just want to report I had a crash of the Introjucer application on Windows 8.1 64 bits today. I had a 200 kb text file opened in the Introjucer editor, and I have replaced it with another version of this file in the explorer. Then when I came back in the Introjucer, he updated the changes and then it crashes. I have tried to reproduce the issue in debug mode to see the function calls, and it crashes again by doing the same thing three times in a row.

The issue is located in juce_TextDiff.cpp, in the function "static int findLongestCommonSubstring (String::CharPointerType a, const int lenA, int& indexInA, String::CharPointerType b, const int lenB, int& indexInB)", line 119, on the instruction "int* const lines = (int*) alloca (scratchSpace);".  The error message in debug mode was "Unhandled exception at 0x00007FF7B85ED258 in The Introjucer.exe: 0xC000041D". One of the function in the call stack is CodeDocument::applyChanges().

I guess the instruction "alloca" shouldn't be used there ? I don't use this instruction at all, but I think it would be useful to replace alloca with a macro which can call malloc instead when the size is too big.


#2

Thanks - I'll take a look and commit a fix.