THRIFT-5381 possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
Client: hx
Patch: Jens Geyer
diff --git a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
index 9f8e946..bfeaf50 100644
--- a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
@@ -1407,7 +1407,7 @@
} else if (type->is_base_type()) {
switch (((t_base_type*)type)->get_base()) {
case t_base_type::TYPE_VOID:
- return "TType.VOID";
+ return "TType.VOID_";
break;
case t_base_type::TYPE_STRING:
return "TType.STRING";
diff --git a/lib/haxe/src/org/apache/thrift/protocol/TBinaryProtocol.hx b/lib/haxe/src/org/apache/thrift/protocol/TBinaryProtocol.hx
index 2cc254b..736a7dc 100644
--- a/lib/haxe/src/org/apache/thrift/protocol/TBinaryProtocol.hx
+++ b/lib/haxe/src/org/apache/thrift/protocol/TBinaryProtocol.hx
@@ -306,7 +306,7 @@
switch (type)
{
case TType.STOP: return 0;
- case TType.VOID: return 0;
+ case TType.VOID_: return 0;
case TType.BOOL: return 1;
case TType.BYTE: return 1;
case TType.DOUBLE: return 8;
diff --git a/lib/haxe/src/org/apache/thrift/protocol/TCompactProtocol.hx b/lib/haxe/src/org/apache/thrift/protocol/TCompactProtocol.hx
index ae626b5..bf7b886 100644
--- a/lib/haxe/src/org/apache/thrift/protocol/TCompactProtocol.hx
+++ b/lib/haxe/src/org/apache/thrift/protocol/TCompactProtocol.hx
@@ -711,7 +711,7 @@
switch (type)
{
case TType.STOP: return 0;
- case TType.VOID: return 0;
+ case TType.VOID_: return 0;
case TType.BOOL: return 1;
case TType.DOUBLE: return 8; // uses fixedLongToBytes() which always writes 8 bytes
case TType.BYTE: return 1;
diff --git a/lib/haxe/src/org/apache/thrift/protocol/TJSONProtocol.hx b/lib/haxe/src/org/apache/thrift/protocol/TJSONProtocol.hx
index 145eab9..2385ca8 100644
--- a/lib/haxe/src/org/apache/thrift/protocol/TJSONProtocol.hx
+++ b/lib/haxe/src/org/apache/thrift/protocol/TJSONProtocol.hx
@@ -782,7 +782,7 @@
switch (type)
{
case TType.STOP: return 0;
- case TType.VOID: return 0;
+ case TType.VOID_: return 0;
case TType.BOOL: return 1; // written as int
case TType.BYTE: return 1;
case TType.DOUBLE: return 1;
diff --git a/lib/haxe/src/org/apache/thrift/protocol/TType.hx b/lib/haxe/src/org/apache/thrift/protocol/TType.hx
index 6abbc96..964b26e 100644
--- a/lib/haxe/src/org/apache/thrift/protocol/TType.hx
+++ b/lib/haxe/src/org/apache/thrift/protocol/TType.hx
@@ -22,7 +22,7 @@
@:enum
abstract TType(Int) from Int to Int {
public static inline var STOP : Int = 0;
- public static inline var VOID : Int = 1;
+ public static inline var VOID_ : Int = 1; // VOID produces collisions with cpp targets in some cases
public static inline var BOOL : Int = 2;
public static inline var BYTE : Int = 3;
public static inline var DOUBLE : Int = 4;