Skip to content

Commit

Permalink
java: Use correct Set*Field JNI accessors to set fields of the approp…
Browse files Browse the repository at this point in the history
…riate type.

Using the wrong accessors (somehow - I have no idea how) caused other
fields in the struct to contain incorrect values.
  • Loading branch information
rwmjones committed Mar 7, 2014
1 parent 7a0e71f commit dff3528
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions generator/java.ml
Original file line number Diff line number Diff line change
Expand Up @@ -1146,13 +1146,13 @@ and generate_java_struct_return typ jtyp cols =
pr " (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
| name, (FUInt32|FInt32) ->
pr " fl = (*env)->GetFieldID (env, cl, \"%s\", \"I\");\n" name;
pr " (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
pr " (*env)->SetIntField (env, jr, fl, r->%s);\n" name;
| name, FOptPercent ->
pr " fl = (*env)->GetFieldID (env, cl, \"%s\", \"F\");\n" name;
pr " (*env)->SetFloatField (env, jr, fl, r->%s);\n" name;
| name, FChar ->
pr " fl = (*env)->GetFieldID (env, cl, \"%s\", \"C\");\n" name;
pr " (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
pr " (*env)->SetCharField (env, jr, fl, r->%s);\n" name;
) cols;
pr " free (r);\n";
pr " return jr;\n"
Expand Down Expand Up @@ -1201,11 +1201,11 @@ and generate_java_struct_list_return typ jtyp cols =
| FBytes|FUInt64|FInt64 ->
pr " (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
| FUInt32|FInt32 ->
pr " (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
pr " (*env)->SetIntField (env, jfl, fl, r->val[i].%s);\n" name;
| FOptPercent ->
pr " (*env)->SetFloatField (env, jfl, fl, r->val[i].%s);\n" name;
| FChar ->
pr " (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
pr " (*env)->SetCharField (env, jfl, fl, r->val[i].%s);\n" name;
) cols;
pr "\n";
pr " (*env)->SetObjectArrayElement (env, jr, i, jfl);\n";
Expand Down

0 comments on commit dff3528

Please sign in to comment.