[PATCH 1/1] PIDL fix for using external types with wireshark backend

Jelmer Vernooij jelmer at samba.org
Tue Oct 6 08:13:01 MDT 2009


On Tue, Oct 06, 2009 at 11:26:57AM +0200, Stefan (metze) Metzmacher wrote:
> > I am referring to this code :
> > 	unless (hasType($e)) {
> > 	    # it must be an external type - all we can do is guess
> > 		# warning($e, "assuming alignment of unknown type '$e' is 4");
> > 	    return 4;
> > 	}

> > I dont if you rely on this and that unknown types default to 4bytes,
> > so I cant estimate if or how much it would break if this would become
> > a die("...")

> Yes, it's a bug, but it's not trivial to fix for the samba case.
> We need to implement the 'import' statement more correct
> and need to make the global %typelist dynamic for each file we
> process. Currently pidl is able to compile more than one idl file
> at a time (and samba uses this to speed up the compilation),
> but the problem is that types are not removed between the compilations
> of different files.
This optimization is a bit of a hack anyway (i.e. because of the order
in which the compilation happens), so perhaps we should be looking for
the real speed issue and fix that; that way we could also just have
make invoke pidl separately.

This code could be a lot faster, what it's doing is not all that
complex. I suspect we're heavily using slow perl functions somewhere. 

Cheers,

Jelmer


More information about the samba-technical mailing list