Changeset 179
- Timestamp:
- 03/01/07 14:11:51 (2 years ago)
- Files:
-
- branches/jni/ports/swt-3.2.1-linux-gtk/bcd (deleted)
- branches/jni/ports/swt-3.2.1-linux-gtk/callbackgen.d (deleted)
- branches/jni/ports/swt-3.2.1-linux-gtk/example_paint.d (modified) (3 diffs)
- branches/jni/ports/swt-3.2.1-linux-gtk/libs/libswt-atk-gtk-3235.so (modified) (previous)
- branches/jni/ports/swt-3.2.1-linux-gtk/libs/libswt-glx-gtk-3235.so (modified) (previous)
- branches/jni/ports/swt-3.2.1-linux-gtk/libs/libswt-gnome-gtk-3235.so (modified) (previous)
- branches/jni/ports/swt-3.2.1-linux-gtk/libs/libswt-gtk-3235.so (modified) (previous)
- branches/jni/ports/swt-3.2.1-linux-gtk/libs/libswt-pi-gtk-3235.so (modified) (previous)
- branches/jni/ports/swt-3.2.1-linux-gtk/makefile (modified) (1 diff)
- branches/jni/src/dejavu/dejavu/Intern.d (modified) (7 diffs)
- branches/jni/src/dejavu/dejavu/lang/Class.d (modified) (2 diffs)
- branches/jni/src/dejavu/dejavu/lang/Error.d (modified) (1 diff)
- branches/jni/src/dejavu/dejavu/lang/reflect/Field.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/jni/ports/swt-3.2.1-linux-gtk/example_paint.d
r174 r179 9 9 import org.eclipse.swt.examples.paint.PaintExample; 10 10 import org.eclipse.swt.SWTException; 11 import org.eclipse.swt.SWTError; 11 12 12 import natives;13 import bcd.gtk2.gtk;14 13 import tango.util.log.Configurator; 15 14 import tango.util.log.Logger; … … 26 25 tango.util.log.Configurator.Configurator.defaultAppender().setLevel( Logger.Level.Fatal ); 27 26 Log.getRootLogger( ).setLevel( Logger.Level.Fatal ); 28 Log.getLogger( "swtport.Natives" ).setLevel( Logger.Level.Fatal );29 27 30 28 … … 33 31 PaintExample.main( args ); 34 32 Stdout.formatln( "+++++++++ end ++++++++++++++++++++++++" ); 33 } catch (SWTError o){ 34 Stdout.formatln( "--------- SWTException -------------------------" ); 35 Stdout.formatln( "exception {}, {}, {}, {}", o.toUtf8(), o.file, o.line, o.getMessage().toUtf8 ); 36 Stdout.newline; 37 throw o; 35 38 } catch (SWTException o){ 36 Stdout.formatln( "--------- SWTE xception-------------------------" );37 Stdout.formatln( "exception { 0}, {1}, {2}", o.toUtf8(), o.file, o.line);39 Stdout.formatln( "--------- SWTError -------------------------" ); 40 Stdout.formatln( "exception {}, {}, {}, {}", o.toUtf8(), o.file, o.line, o.getMessage().toUtf8 ); 38 41 Stdout.newline; 39 42 throw o; branches/jni/ports/swt-3.2.1-linux-gtk/makefile
r178 r179 55 55 $(EXAMPLES) : % : %.d FORCE 56 56 $(REBUILD) $@.d -of$@ -g $(LIBS) $(INCS) -oqbuild -dc=dmd-posix-tango 2>&1 | head -n 30 57 objdump -x $@ | grep _d_throw@4 57 58 # $(BUILD) $*.d -T$* natives_c.o -g -full -cleanup -L-l $(LIBS) $(INCS) 2>&1 | head -n 30 58 59 # $(BUILD) $*.d -T$* -g -full -cleanup -L-l $(LIBS) $(INCS) 2>&1 | head -n 30 branches/jni/src/dejavu/dejavu/Intern.d
r177 r179 447 447 448 448 static extern(C) { 449 450 jfieldID _GetFieldID (JNIEnv *env, jclass clazz, char *name, char *sig, bool aStatic ){ 451 Class clazzObj = cast( Class )cast( JObject )clazz; 452 String strName = String.fromUtf8( fromUtf8z( name )); 453 String strSig = String.fromUtf8( fromUtf8z( sig )); 454 Field fld = clazzObj.findField( strName, strSig, aStatic ); 455 assert( fld !is null ); 456 if( !fld ) return null; 457 return cast(jfieldID) cast(JObject) fld; 458 } 459 jmethodID _GetMethodID (JNIEnv *env, jclass clazz, char *name, char *sig, bool aStatic ){ 460 Class clazzObj = cast( Class )cast( JObject )clazz; 461 String strName = String.fromUtf8( fromUtf8z( name )); 462 String strSig = String.fromUtf8( fromUtf8z( sig )); 463 Method mth = clazzObj.findMethod( strName, strSig, aStatic ); 464 assert( mth !is null ); 465 if( !mth ) return null; 466 return cast(jmethodID) cast(JObject) mth; 467 } 468 469 void* _GetFieldPtr( JNIEnv *env, jobject obj, jfieldID fieldID ){ 470 JObjectImpl o = null; 471 if( obj !is null ){ 472 o = cast(JObjectImpl)cast(JObject)obj; 473 } 474 Field fld = cast(Field)cast(JObject)fieldID; 475 Stdout.formatln( "fieldId {}", fld.getName().toUtf8 ); 476 return fld.getPtr( o ); 477 } 478 449 479 jint GetVersion(JNIEnv *env){ 450 480 assert( false, "implementation missing"); … … 567 597 char[] str = o.toUtf8; 568 598 assert( str.length < 2000 ); 569 Stdout.formatln( "GetObjectClass {}", str ); 570 return cast(jclass)Class.getClassObject( o.classinfo ); 599 Class res = Class.getClassObject( o.classinfo ); 600 assert( res !is null, "GetObjectClass " ~ str ); 601 return cast(jclass) cast(JObject)res; 571 602 } 572 603 … … 577 608 578 609 jmethodID GetMethodID (JNIEnv *env, jclass clazz, char *name, char *sig){ 579 Class clazzObj = cast( Class )cast( JObject )clazz; 580 String strName = String.fromUtf8( fromUtf8z( name )); 581 String strSig = String.fromUtf8( fromUtf8z( sig )); 582 Method mth = clazzObj.findMethod( strName, strSig, false ); 583 assert( mth !is null ); 584 if( !mth ) return null; 585 return cast(jmethodID) cast(JObject) mth; 610 return _GetMethodID( env, clazz, name, sig, false ); 586 611 } 587 612 … … 841 866 842 867 jfieldID GetFieldID (JNIEnv *env, jclass clazz, char *name, char *sig){ 843 assert( false, "implementation missing"); 844 return null; 868 return _GetFieldID( env, clazz, name, sig, false ); 845 869 } 846 870 … … 850 874 } 851 875 jboolean GetBooleanField (JNIEnv *env, jobject obj, jfieldID fieldID){ 852 assert( false, "implementation missing"); 853 return 0; 876 return *cast(bool*)_GetFieldPtr( env, obj, fieldID ); 854 877 } 855 878 jbyte GetByteField (JNIEnv *env, jobject obj, jfieldID fieldID){ 856 assert( false, "implementation missing"); 857 return 0; 879 return *cast(byte*)_GetFieldPtr( env, obj, fieldID ); 858 880 } 859 881 jchar GetCharField (JNIEnv *env, jobject obj, jfieldID fieldID){ 860 assert( false, "implementation missing"); 861 return 0; 882 return *cast(wchar*)_GetFieldPtr( env, obj, fieldID ); 862 883 } 863 884 jshort GetShortField (JNIEnv *env, jobject obj, jfieldID fieldID){ 864 assert( false, "implementation missing"); 865 return 0; 885 return *cast(short*)_GetFieldPtr( env, obj, fieldID ); 866 886 } 867 887 jint GetIntField (JNIEnv *env, jobject obj, jfieldID fieldID){ 868 assert( false, "implementation missing"); 869 return 0; 888 return *cast(int*)_GetFieldPtr( env, obj, fieldID ); 870 889 } 871 890 jlong GetLongField (JNIEnv *env, jobject obj, jfieldID fieldID){ 872 assert( false, "implementation missing"); 873 return 0; 891 return *cast(long*)_GetFieldPtr( env, obj, fieldID ); 874 892 } 875 893 jfloat GetFloatField (JNIEnv *env, jobject obj, jfieldID fieldID){ 876 assert( false, "implementation missing"); 877 return 0; 894 return *cast(float*)_GetFieldPtr( env, obj, fieldID ); 878 895 } 879 896 jdouble GetDoubleField (JNIEnv *env, jobject obj, jfieldID fieldID){ 880 assert( false, "implementation missing"); 881 return 0; 897 return *cast(double*)_GetFieldPtr( env, obj, fieldID ); 882 898 } 883 899 … … 886 902 } 887 903 void SetBooleanField (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val){ 888 assert( false, "implementation missing");904 *cast(bool*)_GetFieldPtr( env, obj, fieldID ) = cast(bool)val; 889 905 } 890 906 void SetByteField (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val){ 891 assert( false, "implementation missing");907 *cast(byte*)_GetFieldPtr( env, obj, fieldID ) = val; 892 908 } 893 909 void SetCharField (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val){ 894 assert( false, "implementation missing");910 *cast(wchar*)_GetFieldPtr( env, obj, fieldID ) = val; 895 911 } 896 912 void SetShortField (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val){ 897 assert( false, "implementation missing");913 *cast(short*)_GetFieldPtr( env, obj, fieldID ) = val; 898 914 } 899 915 void SetIntField (JNIEnv *env, jobject obj, jfieldID fieldID, jint val){ 900 assert( false, "implementation missing");916 *cast(int*)_GetFieldPtr( env, obj, fieldID ) = val; 901 917 } 902 918 void SetLongField (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val){ 903 assert( false, "implementation missing");919 *cast(long*)_GetFieldPtr( env, obj, fieldID ) = val; 904 920 } 905 921 void SetFloatField (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val){ 906 assert( false, "implementation missing");922 *cast(float*)_GetFieldPtr( env, obj, fieldID ) = val; 907 923 } 908 924 void SetDoubleField (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val){ 909 assert( false, "implementation missing");925 *cast(double*)_GetFieldPtr( env, obj, fieldID ) = val; 910 926 } 911 927 912 928 jmethodID GetStaticMethodID (JNIEnv *env, jclass clazz, char *name, char *sig){ 913 Class clazzObj = cast( Class )cast( JObject )clazz; 914 String strName = String.fromUtf8( fromUtf8z( name )); 915 String strSig = String.fromUtf8( fromUtf8z( sig )); 916 Method mth = clazzObj.findMethod( strName, strSig, true ); 917 assert( clazz !is null ); 918 assert( mth !is null, clazzObj.toUtf8 ~ "->" ~ strName.toUtf8 ~ " " ~ strSig.toUtf8 ); 919 if( !mth ) return null; 920 return cast(jmethodID) cast(JObject) mth; 929 return _GetMethodID( env, clazz, name, sig, true ); 921 930 } 922 931 … … 1048 1057 } 1049 1058 1059 1050 1060 jfieldID GetStaticFieldID (JNIEnv *env, jclass clazz, char *name, char *sig){ 1051 assert( false, "implementation missing"); 1052 return null; 1061 return _GetFieldID( env, clazz, name, sig, true ); 1053 1062 } 1054 1063 jobject GetStaticObjectField (JNIEnv *env, jclass clazz, jfieldID fieldID){ branches/jni/src/dejavu/dejavu/lang/Class.d
r177 r179 61 61 } 62 62 res = mth; 63 } 64 } 65 return res; 66 } 67 68 public Field findField( String aName, String aSig, bool aStatic ){ 69 Field res = null; 70 foreach( Field fld; mFields ){ 71 if( fld.matches( aName, aSig, aStatic )){ 72 if( res !is null ){ 73 return null; // multiple matches 74 } 75 res = fld; 63 76 } 64 77 } … … 154 167 } 155 168 169 /** 170 Returns: the name of the class with package etc. 171 In D the most outest class has the same name like the module. 172 This duplicate identifier is removed from the returned name. 173 It is assumed, that the first repeated ident, is the module/class combination. 174 */ 156 175 public dejavu.lang.String.String getName(){ 157 return new String( "dejavu.lang.Class.getName()" ); 176 char[][] parts = TextUtil.delimit( mCi.name, "." ); 177 char[] res; 178 char[] lastpart; 179 bool found = false; 180 bool first = true; 181 foreach( char[] part; parts ){ 182 if( part == lastpart && !found ){ 183 found = true; 184 } 185 else{ 186 lastpart = part; 187 if( first ){ 188 first = false; 189 } 190 else{ 191 res ~= '.'; 192 } 193 res ~= part; 194 } 195 } 196 return String.fromUtf8( res ); 158 197 } 159 198 branches/jni/src/dejavu/dejavu/lang/Error.d
r95 r179 8 8 9 9 public this (){ 10 super(); 10 11 } 11 12 12 13 public this ( dejavu.lang.String.String message ){ 14 super( message ); 13 15 } 14 16 15 17 public this ( dejavu.lang.String.String message, dejavu.lang.Throwable.Throwable cause ){ 18 super( message, cause ); 16 19 } 17 20 18 21 public this ( dejavu.lang.Throwable.Throwable cause ){ 22 super( cause ); 19 23 } 20 24 branches/jni/src/dejavu/dejavu/lang/reflect/Field.d
r95 r179 15 15 alias dejavu.lang.JObjectImpl.JObjectImpl.toString toString; 16 16 17 this ( dejavu.lang.Class.Class declaringClass, dejavu.lang.String.String name, dejavu.lang.Class.Class type, int modifiers, int slot, dejavu.lang.String.String signature, byte[] annotations ){ 17 dejavu.lang.Class.Class declaringClass; 18 dejavu.lang.String.String name; 19 dejavu.lang.Class.Class type; 20 int modifiers; 21 int slot; 22 dejavu.lang.String.String signature; 23 byte[] annotations; 24 25 this ( 26 dejavu.lang.Class.Class declaringClass, 27 dejavu.lang.String.String name, 28 dejavu.lang.Class.Class type, 29 int modifiers, 30 int slot, 31 dejavu.lang.String.String signature, 32 byte[] annotations ){ 33 34 this.declaringClass = declaringClass; 35 this.name = name; 36 this.type = type; 37 this.modifiers = modifiers; 38 this.slot = slot; 39 this.signature = signature; 40 this.annotations = annotations; 41 } 42 43 public bool matches( String aName, String aSig, bool aStatic ){ 44 if( !name.equals( aName )){ 45 return false; 46 } 47 if( !signature.equals( aSig )){ 48 return false; 49 } 50 if( aStatic != (( modifiers & JNIenv.BIT_STATIC ) != 0 )){ 51 assert( false, "arghhhhh" ); 52 return false; 53 } 54 return true; 55 } 56 57 public void* getPtr( JObjectImpl obj ){ 58 if( obj is null ){ 59 assert( ( modifiers & JNIenv.BIT_STATIC ) != 0 ); 60 assert( slot !is 0 ); 61 return cast(void*)slot; 62 } 63 else{ 64 assert( ( modifiers & JNIenv.BIT_STATIC ) == 0 ); 65 size_t objPtr = cast(size_t)cast(void*)obj; 66 size_t res = objPtr + slot; 67 return cast(void*)res; 68 } 18 69 } 19 70 … … 29 80 30 81 public dejavu.lang.String.String getName(){ 31 assert( false, "implementation missing"); 32 return null; 82 return name; 33 83 } 34 84
