};
#define CYJavaForEachPrimitive \
- CYJavaForEachPrimitive_(Z, Boolean, Boolean) \
- CYJavaForEachPrimitive_(B, Byte, Byte) \
- CYJavaForEachPrimitive_(C, Char, Character) \
- CYJavaForEachPrimitive_(S, Short, Short) \
- CYJavaForEachPrimitive_(I, Int, Integer) \
- CYJavaForEachPrimitive_(J, Long, Long) \
- CYJavaForEachPrimitive_(F, Float, Float) \
- CYJavaForEachPrimitive_(D, Double, Double)
+ CYJavaForEachPrimitive_(Z, Boolean, Boolean, boolean) \
+ CYJavaForEachPrimitive_(B, Byte, Byte, byte) \
+ CYJavaForEachPrimitive_(C, Char, Character, char) \
+ CYJavaForEachPrimitive_(S, Short, Short, short) \
+ CYJavaForEachPrimitive_(I, Int, Integer, int) \
+ CYJavaForEachPrimitive_(J, Long, Long, long) \
+ CYJavaForEachPrimitive_(F, Float, Float, float) \
+ CYJavaForEachPrimitive_(D, Double, Double, double)
enum CYJavaPrimitive : char {
CYJavaPrimitiveObject,
CYJavaPrimitiveVoid,
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
CYJavaPrimitive ## Type,
CYJavaForEachPrimitive
#undef CYJavaForEachPrimitive_
case CYJavaPrimitiveObject:
argument = CYCastJavaObject(jni, context, arguments[index]);
break;
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
case CYJavaPrimitive ## Type: \
argument = CYCastJava ## Type(jni, context, arguments[index]); \
break;
switch (field->second.primitive_) {
case CYJavaPrimitiveObject:
return CYCastJSValue(context, jni, _envcall(jni, GetStaticObjectField(table->value_, field->second.field_)));
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
case CYJavaPrimitive ## Type: \
return CYJavaCastJSValue(context, _envcall(jni, GetStatic ## Typ ## Field(table->value_, field->second.field_)));
CYJavaForEachPrimitive
switch (field->second.primitive_) {
case CYJavaPrimitiveObject:
_envcallv(jni, SetStaticObjectField(table->value_, field->second.field_, CYCastJavaObject(jni, context, value)));
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
case CYJavaPrimitive ## Type: \
_envcallv(jni, SetStatic ## Typ ## Field(table->value_, field->second.field_, CYCastDouble(context, value))); \
break;
switch (field->second.primitive_) {
case CYJavaPrimitiveObject:
return CYCastJSValue(context, jni, _envcall(jni, GetObjectField(internal->value_, field->second.field_)));
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
case CYJavaPrimitive ## Type: \
return CYJavaCastJSValue(context, _envcall(jni, Get ## Typ ## Field(internal->value_, field->second.field_)));
CYJavaForEachPrimitive
switch (field->second.primitive_) {
case CYJavaPrimitiveObject:
_envcallv(jni, SetObjectField(table->value_, field->second.field_, CYCastJavaObject(jni, context, value)));
-#define CYJavaForEachPrimitive_(T, Typ, Type) \
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
case CYJavaPrimitive ## Type: \
_envcallv(jni, Set ## Typ ## Field(table->value_, field->second.field_, CYCastDouble(context, value))); \
break;
void CYJava_Initialize() {
Primitives_.insert(std::make_pair("void", CYJavaPrimitiveVoid));
- Primitives_.insert(std::make_pair("boolean", CYJavaPrimitiveBoolean));
- Primitives_.insert(std::make_pair("byte", CYJavaPrimitiveByte));
- Primitives_.insert(std::make_pair("char", CYJavaPrimitiveCharacter));
- Primitives_.insert(std::make_pair("short", CYJavaPrimitiveShort));
- Primitives_.insert(std::make_pair("int", CYJavaPrimitiveInteger));
- Primitives_.insert(std::make_pair("long", CYJavaPrimitiveLong));
- Primitives_.insert(std::make_pair("float", CYJavaPrimitiveFloat));
- Primitives_.insert(std::make_pair("double", CYJavaPrimitiveDouble));
+#define CYJavaForEachPrimitive_(T, Typ, Type, type) \
+ Primitives_.insert(std::make_pair(#type, CYJavaPrimitive ## Type));
+CYJavaForEachPrimitive
+#undef CYJavaForEachPrimitive_
JSClassDefinition definition;