summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-05-09 13:44:12 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-09-15 17:37:09 +0200
commite1deb404eb4fb29f1ca1f3a91b2230173519a797 (patch)
treef5b28c6c46400fdcfce820d7cbf381f56c79a80f /source4/pidl/lib/Parse/Pidl
parent701b856c523acab3ca01b7d41329198aac85a20b (diff)
downloadsamba-e1deb404eb4fb29f1ca1f3a91b2230173519a797.tar.gz
samba-e1deb404eb4fb29f1ca1f3a91b2230173519a797.tar.bz2
samba-e1deb404eb4fb29f1ca1f3a91b2230173519a797.zip
Fix use of interface instances in pidl.
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm6
-rw-r--r--source4/pidl/lib/Parse/Pidl/Samba4/Python.pm10
2 files changed, 8 insertions, 8 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm b/source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm
index 85dab37246..f8ba4fc18a 100644
--- a/source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm
+++ b/source4/pidl/lib/Parse/Pidl/Samba4/COM/Header.pm
@@ -3,7 +3,7 @@
package Parse::Pidl::Samba4::COM::Header;
-use Parse::Pidl::Typelist qw(mapType);
+use Parse::Pidl::Typelist qw(mapTypeName);
use Parse::Pidl::Util qw(has_property is_constant);
use vars qw($VERSION);
@@ -18,7 +18,7 @@ sub GetArgumentProtoList($)
foreach my $a (@{$f->{ELEMENTS}}) {
- $res .= ", " . mapType($a->{TYPE}) . " ";
+ $res .= ", " . mapTypeName($a->{TYPE}) . " ";
my $l = $a->{POINTERS};
$l-- if (Parse::Pidl::Typelist::scalar_is_reference($a->{TYPE}));
@@ -62,7 +62,7 @@ sub HeaderVTable($)
my $data = $interface->{DATA};
foreach my $d (@{$data}) {
- $res .= "\t" . mapType($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
+ $res .= "\t" . mapTypeName($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
}
$res .= "\n";
$res .= "struct $interface->{NAME}_vtable {\n";
diff --git a/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm b/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm
index b7d092015c..3b7e875260 100644
--- a/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -9,6 +9,7 @@ use Exporter;
@ISA = qw(Exporter);
use strict;
+use Parse::Pidl qw(warning fatal);
use Parse::Pidl::Typelist qw(hasType resolveType getType mapTypeName expandAlias);
use Parse::Pidl::Util qw(has_property ParseExpr);
use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array);
@@ -846,7 +847,7 @@ sub ConvertObjectFromPythonData($$$$$$)
return;
}
- if ($actual_ctype->{TYPE} eq "STRUCT") {
+ if ($actual_ctype->{TYPE} eq "STRUCT" or $actual_ctype->{TYPE} eq "INTERFACE") {
$self->pidl("PY_CHECK_TYPE($ctype->{NAME}, $cvar, $fail);");
$self->assign($target, "py_talloc_get_ptr($cvar)");
return;
@@ -889,7 +890,7 @@ sub ConvertObjectFromPythonData($$$$$$)
return;
}
- die("unknown type ".mapTypeName($ctype) . ": $cvar");
+ fatal($ctype, "unknown type $actual_ctype->{TYPE} for ".mapTypeName($ctype) . ": $cvar");
}
@@ -1026,13 +1027,12 @@ sub ConvertObjectToPythonData($$$$$)
} elsif ($actual_ctype->{TYPE} eq "SCALAR") {
return $self->ConvertScalarToPython($actual_ctype->{NAME}, $cvar);
} elsif ($actual_ctype->{TYPE} eq "UNION") {
- # FIXME: Should be fatal() rather than die()
- die("union without discriminant: " . mapTypeName($ctype) . ": $cvar");
+ fatal($ctype, "union without discriminant: " . mapTypeName($ctype) . ": $cvar");
} elsif ($actual_ctype->{TYPE} eq "STRUCT" or $actual_ctype->{TYPE} eq "INTERFACE") {
return "py_talloc_import_ex(&$ctype->{NAME}_Type, $mem_ctx, $cvar)";
}
- die("unknown type ".mapTypeName($ctype) . ": $cvar");
+ fatal($ctype, "unknown type $actual_ctype->{TYPE} for ".mapTypeName($ctype) . ": $cvar");
}
sub fail_on_null($$$)