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.