From: <wsf...@us...> - 2010-05-14 19:03:07
|
Revision: 12029 http://swig.svn.sourceforge.net/swig/?rev=12029&view=rev Author: wsfulton Date: 2010-05-14 19:03:01 +0000 (Fri, 14 May 2010) Log Message: ----------- Fix wrapping of C++ enum boolean values when using %javaconst(1) Modified Paths: -------------- trunk/Examples/test-suite/java_enums.i trunk/Source/Modules/java.cxx Modified: trunk/Examples/test-suite/java_enums.i =================================================================== --- trunk/Examples/test-suite/java_enums.i 2010-05-14 18:46:20 UTC (rev 12028) +++ trunk/Examples/test-suite/java_enums.i 2010-05-14 19:03:01 UTC (rev 12029) @@ -58,3 +58,9 @@ %inline %{ enum Numero { Quattro = FOUR }; %} + +// Test boolean enums +%inline %{ +typedef enum { PLAY = true, STOP = false } play_state; +%} + Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-05-14 18:46:20 UTC (rev 12028) +++ trunk/Source/Modules/java.cxx 2010-05-14 19:03:01 UTC (rev 12029) @@ -1352,6 +1352,13 @@ // Note that this is used in enumValue() amongst other places Setattr(n, "value", tmpValue); + // Deal with enum values that are bools + if (SwigType_type(Getattr(n, "type")) == T_BOOL) { + String *boolValue = NewStringf("%s ? 1 : 0", Getattr(n, "enumvalue")); + Setattr(n, "enumvalue", boolValue); + Delete(boolValue); + } + { EnumFeature enum_feature = decodeEnumFeature(parent); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |