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.