XPTInterfaceDirectoryEntry **idep)
XPTInterfaceDirectoryEntry *ide)
XPT_DoInterfaceDirectoryEntry(XPTCursor *cursor,                              XPTInterfaceDirectoryEntry **idep){        XPTMode mode = cursor->state->mode;    XPTInterfaceDirectoryEntry *ide;    if (mode == XPT_DECODE)        ide = PR_NEWZAP(XPTInterfaceDirectoryEntry);    else        ide = *idep;        /* write the IID in our cursor space */    if (!XPT_DoIID(cursor, &ide->iid) ||                /* write the name string in the data pool, and the offset in our           cursor space */        !XPT_DoCString(&cursor, &ide->name) ||                /* write the namespace string in the data pool, and the offset in our           cursor space */        !XPT_DoCString(&cursor, &ide->namespace)) {                goto error;    }        /* write the InterfaceDescriptor in the data pool, and the offset       in our cursor space, but only if we're encoding. */    if (mode == XPT_ENCODE) {        if (!XPT_DoInterfaceDescriptor(&cursor,                                        &ide->interface_descriptor)) {            goto error;        }    }        return PR_TRUE;    XPT_ERROR_HANDLE(ide);    }