# HG changeset patch # User David Nadlinger # Date 1282956955 -7200 # Node ID 1049b01aebd2469d05e2f60111a210b4fa1c289c # Parent 6bd75093d3bb9e71af68da54bdaf46a62e5c1251 Fixed generator segfaults on OS X 10.6. Regarding the change to dgenerator.cpp, I am not actually sure if 0 is the correct value to pass, but it seems to work and the code which had been there before was just plain incorrect ? it read past the list boundaries. diff -r 6bd75093d3bb -r 1049b01aebd2 generator/abstractmetabuilder.cpp --- a/generator/abstractmetabuilder.cpp Sat Aug 28 02:17:15 2010 +0200 +++ b/generator/abstractmetabuilder.cpp Sat Aug 28 02:55:55 2010 +0200 @@ -1723,7 +1723,7 @@ newInfo.setVolatile(typei.isVolatile()); AbstractMetaType *elementType = translateType(newInfo, ok); - if (!ok) + if (!(*ok)) return 0; for (int i=typeInfo.arrays.size()-1; i>=0; --i) { diff -r 6bd75093d3bb -r 1049b01aebd2 generator/dgenerator.cpp --- a/generator/dgenerator.cpp Sat Aug 28 02:17:15 2010 +0200 +++ b/generator/dgenerator.cpp Sat Aug 28 02:55:55 2010 +0200 @@ -660,8 +660,10 @@ referenceCounts = d_function->referenceCounts(d_function->implementingClass(), i == 0 ? -1 : i); - foreach (ReferenceCount refCount, referenceCounts) - writeReferenceCount(s, refCount, i == 0 ? "this" : arguments.at(i-1)->argumentName(), arguments.at(i-1)->type()); + foreach (ReferenceCount refCount, referenceCounts) { + // TODO: What is the correct value to pass as last parameter if (i == 0)? + writeReferenceCount(s, refCount, i == 0 ? "this" : arguments.at(i-1)->argumentName(), i == 0 ? 0 : arguments.at(i-1)->type()); + } } referenceCounts = d_function->referenceCounts(d_function->implementingClass(), 0);