pidl-wireshark: handle 8 bits enum and change the signature of enum function to pass...
authorMatthieu Patou <mat@matws.net>
Mon, 6 Oct 2014 01:25:27 +0000 (18:25 -0700)
committerStefan Metzmacher <metze@samba.org>
Thu, 23 Oct 2014 21:12:05 +0000 (23:12 +0200)
Instead of passing a uint32 in all cases we pass the exact type

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Change-Id: Ib79f1fa56d5aeb30c6e57eea8f0a48db60f6484d
Signed-off-by: Matthieu Patou <mat@matws.net>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
pidl/lib/Parse/Pidl/Wireshark/NDR.pm

index 6daf7d4d5c1531a535cdf31187c6b4e70dac33da..321104fdc3dca4ad49b0c58cc2bed6f6a0ae0e44 100644 (file)
@@ -150,7 +150,7 @@ sub Enum($$$$)
        }
        
        $self->pidl_hdr("extern const value_string $valsstring\[];");
-       $self->pidl_hdr("int $dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);");
+       $self->pidl_hdr("int $dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, g$e->{BASE_TYPE} *param _U_);");
 
        $self->pidl_def("const value_string ".$valsstring."[] = {");
        foreach (@{$e->{ELEMENTS}}) {
@@ -163,19 +163,19 @@ sub Enum($$$$)
 
        $self->pidl_fn_start($dissectorname);
        $self->pidl_code("int");
-       $self->pidl_code("$dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)");
+       $self->pidl_code("$dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, g$e->{BASE_TYPE} *param _U_)");
        $self->pidl_code("{");
        $self->indent;
        $self->pidl_code("g$e->{BASE_TYPE} parameter=0;");
-       $self->pidl_code("if(param){");
+       $self->pidl_code("if (param) {");
        $self->indent;
-       $self->pidl_code("parameter=(g$e->{BASE_TYPE})*param;");
+       $self->pidl_code("parameter = *param;");
        $self->deindent;
        $self->pidl_code("}");
        $self->pidl_code("offset = dissect_ndr_$e->{BASE_TYPE}(tvb, offset, pinfo, tree, drep, hf_index, &parameter);");
-       $self->pidl_code("if(param){");
+       $self->pidl_code("if (param) {");
        $self->indent;
-       $self->pidl_code("*param=(guint32)parameter;");
+       $self->pidl_code("*param = parameter;");
        $self->deindent;
        $self->pidl_code("}");
        $self->pidl_code("return offset;");