mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
java: Use correct Set*Field JNI accessors to set fields of the appropriate type.
Using the wrong accessors (somehow - I have no idea how) caused other fields in the struct to contain incorrect values.
This commit is contained in:
@@ -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"
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user