r5669: Couple of minor clearifications, simplifications.
[samba.git] / source4 / build / pidl / ndr_header.pm
index c928ee1db31c6d014176ce15389e540df381422e..3e673466e0581ac0e63fe491613a81260612a7f7 100644 (file)
@@ -61,15 +61,12 @@ sub HeaderElement($)
     HeaderType($element, $element->{TYPE}, "");
     pidl " ";
     if ($element->{POINTERS} && $element->{TYPE} ne "string") {
     HeaderType($element, $element->{TYPE}, "");
     pidl " ";
     if ($element->{POINTERS} && $element->{TYPE} ne "string") {
-           my($n) = $element->{POINTERS};
-           for (my($i)=$n; $i > 0; $i--) {
+           for (my($i)=$element->{POINTERS}; $i > 0; $i--) {
                    pidl "*";
            }
                    pidl "*";
            }
-    }
-    if (defined $element->{ARRAY_LEN} && 
-       !util::is_constant($element->{ARRAY_LEN}) &&
-       !$element->{POINTERS}) {
-           # conformant arrays are ugly! I choose to implement them with
+    } elsif (NdrParser::is_surrounding_array($element) || 
+               defined $element->{ARRAY_LEN} && !util::is_constant($element->{ARRAY_LEN})) {
+           # surrounding arrays are ugly! I choose to implement them with
            # pointers instead of the [1] method
            pidl "*";
     }
            # pointers instead of the [1] method
            pidl "*";
     }