summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-07-11 23:32:14 +0100
committerRichard Jones <rjones@redhat.com>2010-07-11 23:32:14 +0100
commitc94240fad3f6bc1befc1c7ba6de253555a58dce3 (patch)
tree6b63d3b41ee5272db9796292518be4c5dd506b38
parent77d38592f59f146c5ef249a3f7036cf2a1e45acd (diff)
downloadhivex-c94240fad3f6bc1befc1c7ba6de253555a58dce3.tar.gz
hivex-c94240fad3f6bc1befc1c7ba6de253555a58dce3.tar.xz
hivex-c94240fad3f6bc1befc1c7ba6de253555a58dce3.zip
perl: Fix generated XS code for value_dword binding.
Thanks to Hilko Bengen for spotting the problem.
-rwxr-xr-xgenerator/generator.ml16
1 files changed, 15 insertions, 1 deletions
diff --git a/generator/generator.ml b/generator/generator.ml
index 03f8c20..5bd46ee 100755
--- a/generator/generator.ml
+++ b/generator/generator.ml
@@ -2421,7 +2421,6 @@ DESTROY (h)
| RErrDispose -> assert false
| RHive -> assert false
- | RInt32
| RNode
| RValue ->
pr "PREINIT:\n";
@@ -2542,6 +2541,21 @@ DESTROY (h)
pr " PUSHs (sv_2mortal (newSVpvn (r, len)));\n";
pr " free (r);\n";
+ | RInt32 ->
+ pr "PREINIT:\n";
+ pr " int32_t r;\n";
+ pr " CODE:\n";
+ pr " errno = 0;\n";
+ pr " r = hivex_%s (%s);\n"
+ name (String.concat ", " c_params);
+ free_args ();
+ pr " if (r == -1 && errno != 0)\n";
+ pr " croak (\"%%s: %%s\", \"%s\", strerror (errno));\n"
+ name;
+ pr " RETVAL = newSViv (r);\n";
+ pr " OUTPUT:\n";
+ pr " RETVAL\n"
+
| RInt64 ->
pr "PREINIT:\n";
pr " int64_t r;\n";