Changeset 179

Show
Ignore:
Timestamp:
03/01/07 14:11:51 (2 years ago)
Author:
keinfarbton
Message:

removed bcd, copied orig libs, some more impls

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/jni/ports/swt-3.2.1-linux-gtk/example_paint.d

    r174 r179  
    99import org.eclipse.swt.examples.paint.PaintExample; 
    1010import org.eclipse.swt.SWTException; 
     11import org.eclipse.swt.SWTError; 
    1112 
    12 import natives; 
    13 import bcd.gtk2.gtk; 
    1413import tango.util.log.Configurator; 
    1514import tango.util.log.Logger; 
     
    2625    tango.util.log.Configurator.Configurator.defaultAppender().setLevel( Logger.Level.Fatal ); 
    2726    Log.getRootLogger( ).setLevel( Logger.Level.Fatal ); 
    28     Log.getLogger( "swtport.Natives" ).setLevel( Logger.Level.Fatal ); 
    2927 
    3028 
     
    3331        PaintExample.main( args ); 
    3432        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; 
    3538    } catch (SWTException o){ 
    36         Stdout.formatln( "--------- SWTException -------------------------" ); 
    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 ); 
    3841        Stdout.newline; 
    3942        throw o; 
  • branches/jni/ports/swt-3.2.1-linux-gtk/makefile

    r178 r179  
    5555$(EXAMPLES) : % : %.d FORCE 
    5656    $(REBUILD) $@.d -of$@ -g $(LIBS) $(INCS) -oqbuild -dc=dmd-posix-tango 2>&1 | head -n 30 
     57    objdump -x $@ | grep _d_throw@4 
    5758#   $(BUILD) $*.d -T$* natives_c.o -g -full -cleanup -L-l $(LIBS) $(INCS) 2>&1 | head -n 30 
    5859#   $(BUILD) $*.d -T$* -g -full -cleanup -L-l $(LIBS) $(INCS) 2>&1 | head -n 30 
  • branches/jni/src/dejavu/dejavu/Intern.d

    r177 r179  
    447447 
    448448    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 
    449479        jint GetVersion(JNIEnv *env){ 
    450480            assert( false, "implementation missing"); 
     
    567597            char[] str = o.toUtf8; 
    568598            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; 
    571602        } 
    572603 
     
    577608 
    578609        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 ); 
    586611        } 
    587612 
     
    841866 
    842867        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 ); 
    845869        } 
    846870 
     
    850874        } 
    851875        jboolean GetBooleanField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    852             assert( false, "implementation missing"); 
    853             return 0; 
     876            return *cast(bool*)_GetFieldPtr( env, obj, fieldID ); 
    854877        } 
    855878        jbyte GetByteField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    856             assert( false, "implementation missing"); 
    857             return 0; 
     879            return *cast(byte*)_GetFieldPtr( env, obj, fieldID ); 
    858880        } 
    859881        jchar GetCharField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    860             assert( false, "implementation missing"); 
    861             return 0; 
     882            return *cast(wchar*)_GetFieldPtr( env, obj, fieldID ); 
    862883        } 
    863884        jshort GetShortField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    864             assert( false, "implementation missing"); 
    865             return 0; 
     885            return *cast(short*)_GetFieldPtr( env, obj, fieldID ); 
    866886        } 
    867887        jint GetIntField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    868             assert( false, "implementation missing"); 
    869             return 0; 
     888            return *cast(int*)_GetFieldPtr( env, obj, fieldID ); 
    870889        } 
    871890        jlong GetLongField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    872             assert( false, "implementation missing"); 
    873             return 0; 
     891            return *cast(long*)_GetFieldPtr( env, obj, fieldID ); 
    874892        } 
    875893        jfloat GetFloatField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    876             assert( false, "implementation missing"); 
    877             return 0; 
     894            return *cast(float*)_GetFieldPtr( env, obj, fieldID ); 
    878895        } 
    879896        jdouble GetDoubleField (JNIEnv *env, jobject obj, jfieldID fieldID){ 
    880             assert( false, "implementation missing"); 
    881             return 0; 
     897            return *cast(double*)_GetFieldPtr( env, obj, fieldID ); 
    882898        } 
    883899 
     
    886902        } 
    887903        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
    889905        } 
    890906        void SetByteField (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val){ 
    891             assert( false, "implementation missing")
     907            *cast(byte*)_GetFieldPtr( env, obj, fieldID ) = val
    892908        } 
    893909        void SetCharField (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val){ 
    894             assert( false, "implementation missing")
     910            *cast(wchar*)_GetFieldPtr( env, obj, fieldID ) = val
    895911        } 
    896912        void SetShortField (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val){ 
    897             assert( false, "implementation missing")
     913            *cast(short*)_GetFieldPtr( env, obj, fieldID ) = val
    898914        } 
    899915        void SetIntField (JNIEnv *env, jobject obj, jfieldID fieldID, jint val){ 
    900             assert( false, "implementation missing")
     916            *cast(int*)_GetFieldPtr( env, obj, fieldID ) = val
    901917        } 
    902918        void SetLongField (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val){ 
    903             assert( false, "implementation missing")
     919            *cast(long*)_GetFieldPtr( env, obj, fieldID ) = val
    904920        } 
    905921        void SetFloatField (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val){ 
    906             assert( false, "implementation missing")
     922            *cast(float*)_GetFieldPtr( env, obj, fieldID ) = val
    907923        } 
    908924        void SetDoubleField (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val){ 
    909             assert( false, "implementation missing")
     925            *cast(double*)_GetFieldPtr( env, obj, fieldID ) = val
    910926        } 
    911927 
    912928        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 ); 
    921930        } 
    922931 
     
    10481057        } 
    10491058 
     1059 
    10501060        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 ); 
    10531062        } 
    10541063        jobject GetStaticObjectField (JNIEnv *env, jclass clazz, jfieldID fieldID){ 
  • branches/jni/src/dejavu/dejavu/lang/Class.d

    r177 r179  
    6161                } 
    6262                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; 
    6376            } 
    6477        } 
     
    154167    } 
    155168 
     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      */ 
    156175    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 ); 
    158197    } 
    159198 
  • branches/jni/src/dejavu/dejavu/lang/Error.d

    r95 r179  
    88 
    99    public this (){ 
     10        super(); 
    1011    } 
    1112 
    1213    public this ( dejavu.lang.String.String message ){ 
     14        super( message ); 
    1315    } 
    1416 
    1517    public this ( dejavu.lang.String.String message, dejavu.lang.Throwable.Throwable cause ){ 
     18        super( message, cause ); 
    1619    } 
    1720 
    1821    public this ( dejavu.lang.Throwable.Throwable cause ){ 
     22        super( cause ); 
    1923    } 
    2024 
  • branches/jni/src/dejavu/dejavu/lang/reflect/Field.d

    r95 r179  
    1515    alias dejavu.lang.JObjectImpl.JObjectImpl.toString toString; 
    1616 
    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        } 
    1869    } 
    1970 
     
    2980 
    3081    public dejavu.lang.String.String getName(){ 
    31         assert( false, "implementation missing"); 
    32         return null; 
     82        return name; 
    3383    } 
    3484