widl [2/2]: Implement pointer descriptions for complex structures

Dan Hipschman dsh at linux.ucla.edu
Tue Sep 18 12:45:40 CDT 2007


On Tue, Sep 18, 2007 at 09:23:37AM +0100, Robert Shearman wrote:
> Dan Hipschman wrote:
> >var_t *field,
> >     }
> >     else if (is_ptr(type))
> >     {
> >-        print_file(file, 2, "0x8,\t/* FC_LONG */\n");
> >+        unsigned char fc = (cont->type == RPC_FC_BOGUS_STRUCT
> >+                            ? RPC_FC_POINTER
> >+                            : RPC_FC_LONG);
> >+        print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc));
> >         *tfsoff += 1;
> >     }
> >     else if (!write_base_type(file, type, tfsoff))
> >  
> 
> I sent a patch yesterday which does a similar thing to this chunk. I 
> think we need to agree on which approach we're going to take so we can 
> let Alexandre know which patch to commit.

Sorry, I missed your last three patches somehow.  My patch not only uses
RPC_FC_POINTER instead of RPC_FC_LONG here, but it also implements the
pointer description section for complex structures.  I actually left
these as RPC_FC_LONG on purpose, until the pointer description part was
finished.  Isn't using RPC_FC_POINTER with a pointer description offset
of zero just going to crash?  It's not really any more correct in that
case.  There are no tests, so I'm not sure what it would do.




More information about the wine-devel mailing list