VirtualBox

Changeset 29178 in vbox


Ignore:
Timestamp:
May 6, 2010 11:57:42 PM (15 years ago)
Author:
vboxsync
Message:

xpidl_java.c,Makefile.kmk: Mark the changes pertaining to making diffing easier with VBOX_XPIDL_EMULATE_GENJIFACES_DIFF. Corrected and cleaned up constant_declaration() - it now ends up with the right types.

Location:
trunk/src/libs/xpcom18a4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r29118 r29178  
    425425#endif
    426426ifdef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    427  xpidl_DEFS += VBOX_XPIDL_EMULATE_GENJIFACES
     427 xpidl_DEFS += VBOX_XPIDL_EMULATE_GENJIFACES VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    428428endif
    429429xpidl_SOURCES = \
  • trunk/src/libs/xpcom18a4/xpcom/typelib/xpidl/xpidl_java.c

    r29118 r29178  
    6161java_prolog(TreeState *state)
    6262{
    63 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     63#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    6464    const char *basename;
    6565    const char *ext;
     
    8181     */
    8282
    83 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     83#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    8484    basename = xpidl_basename(state->real_outname ? state->real_outname : state->basename);
    8585    ext = strrchr(basename, '.');
     
    119119    state->priv = NULL;
    120120
    121 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
     121#ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    122122    /*
    123123     * Last pass
     
    160160    if (!verify_interface_declaration(interface))
    161161        return FALSE;
    162 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
     162#ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    163163    /*
    164164     * Write out JavaDoc comment
     
    174174#endif
    175175
    176 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
     176#ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    177177    if (iid != NULL) {
    178178        fprintf(state->file, " *\n * IID: 0x%s\n */\n\n", iid);
     
    215215         */
    216216
    217 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     217#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    218218        fputs("  public static final String ", state->file);
    219219#else
     
    227227
    228228#ifdef VBOX_XPIDL_EMULATE_GENJIFACES
    229         fprintf(state->file, " =\n    \"{%s}\";\n", iid);
     229        fputs(" =\n    \"{", state->file);
     230        while (*iid) {
     231            fputc(tolower(*iid++), state->file);
     232        }
     233        fputs("}\";\n", state->file);
    230234
    231235#else
     
    262266process_list(TreeState *state)
    263267{
    264 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     268#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    265269    /* To make the diffing simple, group the constants, methods and attributes. */
    266270    IDL_tree list = state->tree;
     
    595599
    596600static gboolean
    597 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     601#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    598602xpcom_to_java_param(TreeState *state, unsigned nparam)
    599603#else
     
    636640    fputc(' ', state->file);
    637641
    638 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     642#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    639643    fprintf(state->file, "arg%u", nparam+1);
    640644#else
     
    706710    IDL_tree retval_param = NULL;
    707711    const char *method_name = IDL_IDENT(method->ident).str;
    708 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     712#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    709713    unsigned nparam = 0;
    710714#endif
     
    723727
    724728    fputc('\n', state->file);
    725 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
     729#ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    726730    xpidl_write_comment(state, 4);
    727731#endif
     
    730734     * Write beginning of method declaration
    731735     */
    732 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     736#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    733737    fputs("  ", state->file);
    734738#else
     
    817821        state->tree = IDL_LIST(iterator).data;
    818822
    819 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     823#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    820824        if (!xpcom_to_java_param(state, nparam++)) {
    821825#else
     
    856860    const char *name = IDL_IDENT(declaration->ident).str;
    857861    IDL_tree real_type;
    858 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
    859     IDL_tree saved_tree;
    860 #endif
    861862
    862863    if (!verify_const_declaration(state->tree))
     
    868869
    869870    fputc('\n', state->file);
    870 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
    871871    xpidl_write_comment(state, 4);
    872 #endif
    873 
    874 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
    875 /* XXX: We get the WRONG signedness of stuff here. PRInt32 -> unsigned long and stuff like that. */
     872
     873#ifdef VBOX_XPIDL_EMULATE_GENJIFACES /* (from typelib_const_dcl)*/
     874# ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    876875    fputs("  public static final ", state->file);
    877     switch(IDL_NODE_TYPE(real_type)) {
    878 
    879     case IDLN_TYPE_INTEGER: {
    880         switch(IDL_TYPE_INTEGER(real_type).f_type) {
    881 
    882         case IDL_INTEGER_TYPE_SHORT:
    883             if (IDL_TYPE_INTEGER(real_type).f_signed)
    884                 fprintf(state->file, "int %s = %d;\n", name, (int)IDL_INTEGER(declaration->const_exp).value);
    885             else
    886                 fprintf(state->file, "int %s = %u;\n", name, (unsigned)IDL_INTEGER(declaration->const_exp).value);
    887             break;
    888 
    889         case IDL_INTEGER_TYPE_LONG:
    890             if (IDL_TYPE_INTEGER(state->tree).f_signed)
    891                 fprintf(state->file, "int %s = %d;\n", name, (int)IDL_INTEGER(declaration->const_exp).value);
    892             else
    893                 fprintf(state->file, "long %s = %uL;\n", name, (unsigned)IDL_INTEGER(declaration->const_exp).value);
    894             break;
    895 
    896         case IDL_INTEGER_TYPE_LONGLONG:
    897             if (IDL_TYPE_INTEGER(state->tree).f_signed)
    898                 fprintf(state->file, "long %lldL;\n", name, (long long)IDL_INTEGER(declaration->const_exp).value);
    899             else
    900                 fprintf(state->file, "double %lluL;\n", name, (unsigned long long)IDL_INTEGER(declaration->const_exp).value);
    901             break;
    902 
    903         default:
    904             g_error("   Unknown integer type: %d\n",
    905                     IDL_TYPE_INTEGER(state->tree).f_type);
    906             return FALSE;
    907 
    908         }
    909         break;
    910     }
    911     default:
    912         g_error("   Unknown constant type: %d\n", IDL_NODE_TYPE(real_type));
    913         return FALSE;
    914     }
    915 #else
     876# else
     877    fputs("    public static final ", state->file);
     878# endif
     879    if (IDL_TYPE_INTEGER(real_type).f_type == IDL_INTEGER_TYPE_LONG) {
     880        if (IDL_TYPE_INTEGER(real_type).f_signed)
     881            fprintf(state->file, "int %s = %"   IDL_LL "d;\n",  name, IDL_INTEGER(dcl->const_exp).value);
     882        else
     883            fprintf(state->file, "long %s = %"  IDL_LL "uL;\n", name, IDL_INTEGER(dcl->const_exp).value);
     884    } else {
     885        if (IDL_TYPE_INTEGER(real_type).f_signed)
     886            fprintf(state->file, "short %s = %" IDL_LL "d;\n",  name, IDL_INTEGER(dcl->const_exp).value);
     887        else
     888            fprintf(state->file, "int %s = %"   IDL_LL "u;\n",  name, IDL_INTEGER(dcl->const_exp).value);
     889    }
     890#else  /* !VBOX_XPIDL_EMULATE_GENJIFACES */
    916891    fprintf(state->file, "    public static final %s %s = %d;\n",
    917892            (IDL_TYPE_INTEGER(real_type).f_type == IDL_INTEGER_TYPE_LONG
    918893             ? "long" : "short"),
    919894            name, (int) IDL_INTEGER(declaration->const_exp).value);
    920 #endif
     895#endif /* !VBOX_XPIDL_EMULATE_GENJIFACES */
    921896
    922897    return TRUE;
     
    958933    /* Comment */
    959934    fputc('\n', state->file);
    960 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES
     935#ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    961936    xpidl_write_comment(state, 4);
    962937#endif
     
    967942     * Write access permission ("public" unless nonscriptable)
    968943     */
    969 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     944#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    970945    fputs("  ", state->file);
    971946#else
     
    992967    if (!read_only) {
    993968        /* Nonscriptable methods become package-protected */
    994 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     969#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    995970        fputs("\n  ", state->file);
    996971#else
     
    1018993         * Write the name of the formal parameter.
    1019994         */
    1020 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES
     995#ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF
    1021996        fputs(" arg1);\n", state->file);
    1022997#else
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette