Changeset 29178 in vbox
- Timestamp:
- May 6, 2010 11:57:42 PM (15 years ago)
- Location:
- trunk/src/libs/xpcom18a4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/xpcom18a4/Makefile.kmk
r29118 r29178 425 425 #endif 426 426 ifdef 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 428 428 endif 429 429 xpidl_SOURCES = \ -
trunk/src/libs/xpcom18a4/xpcom/typelib/xpidl/xpidl_java.c
r29118 r29178 61 61 java_prolog(TreeState *state) 62 62 { 63 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 63 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 64 64 const char *basename; 65 65 const char *ext; … … 81 81 */ 82 82 83 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 83 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 84 84 basename = xpidl_basename(state->real_outname ? state->real_outname : state->basename); 85 85 ext = strrchr(basename, '.'); … … 119 119 state->priv = NULL; 120 120 121 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES 121 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 122 122 /* 123 123 * Last pass … … 160 160 if (!verify_interface_declaration(interface)) 161 161 return FALSE; 162 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES 162 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 163 163 /* 164 164 * Write out JavaDoc comment … … 174 174 #endif 175 175 176 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES 176 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 177 177 if (iid != NULL) { 178 178 fprintf(state->file, " *\n * IID: 0x%s\n */\n\n", iid); … … 215 215 */ 216 216 217 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 217 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 218 218 fputs(" public static final String ", state->file); 219 219 #else … … 227 227 228 228 #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); 230 234 231 235 #else … … 262 266 process_list(TreeState *state) 263 267 { 264 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 268 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 265 269 /* To make the diffing simple, group the constants, methods and attributes. */ 266 270 IDL_tree list = state->tree; … … 595 599 596 600 static gboolean 597 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 601 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 598 602 xpcom_to_java_param(TreeState *state, unsigned nparam) 599 603 #else … … 636 640 fputc(' ', state->file); 637 641 638 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 642 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 639 643 fprintf(state->file, "arg%u", nparam+1); 640 644 #else … … 706 710 IDL_tree retval_param = NULL; 707 711 const char *method_name = IDL_IDENT(method->ident).str; 708 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 712 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 709 713 unsigned nparam = 0; 710 714 #endif … … 723 727 724 728 fputc('\n', state->file); 725 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES 729 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 726 730 xpidl_write_comment(state, 4); 727 731 #endif … … 730 734 * Write beginning of method declaration 731 735 */ 732 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 736 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 733 737 fputs(" ", state->file); 734 738 #else … … 817 821 state->tree = IDL_LIST(iterator).data; 818 822 819 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 823 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 820 824 if (!xpcom_to_java_param(state, nparam++)) { 821 825 #else … … 856 860 const char *name = IDL_IDENT(declaration->ident).str; 857 861 IDL_tree real_type; 858 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES859 IDL_tree saved_tree;860 #endif861 862 862 863 if (!verify_const_declaration(state->tree)) … … 868 869 869 870 fputc('\n', state->file); 870 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES871 871 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 876 875 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 */ 916 891 fprintf(state->file, " public static final %s %s = %d;\n", 917 892 (IDL_TYPE_INTEGER(real_type).f_type == IDL_INTEGER_TYPE_LONG 918 893 ? "long" : "short"), 919 894 name, (int) IDL_INTEGER(declaration->const_exp).value); 920 #endif 895 #endif /* !VBOX_XPIDL_EMULATE_GENJIFACES */ 921 896 922 897 return TRUE; … … 958 933 /* Comment */ 959 934 fputc('\n', state->file); 960 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES 935 #ifndef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 961 936 xpidl_write_comment(state, 4); 962 937 #endif … … 967 942 * Write access permission ("public" unless nonscriptable) 968 943 */ 969 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 944 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 970 945 fputs(" ", state->file); 971 946 #else … … 992 967 if (!read_only) { 993 968 /* Nonscriptable methods become package-protected */ 994 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 969 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 995 970 fputs("\n ", state->file); 996 971 #else … … 1018 993 * Write the name of the formal parameter. 1019 994 */ 1020 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES 995 #ifdef VBOX_XPIDL_EMULATE_GENJIFACES_DIFF 1021 996 fputs(" arg1);\n", state->file); 1022 997 #else
Note:
See TracChangeset
for help on using the changeset viewer.