Changeset 2821


Ignore:
Timestamp:
06/21/10 20:14:00 (20 months ago)
Author:
karpet
Message:

switch signatures for int and ptr sizes

Location:
Search-Tools/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Search-Tools/trunk/search-tools.c

    r2716 r2821  
    136136} 
    137137 
    138 static IV 
     138static void *  
    139139st_av_fetch_ptr( AV* a, I32 index ) { 
    140140    dTHX; 
    141141    SV** ok; 
    142     IV ptr; 
     142    void * ptr; 
    143143    ok = av_fetch(a, index, 0); 
    144144    if (ok == NULL) { 
     
    343343/* make a Perl blessed object from a C pointer */ 
    344344static SV*  
    345 st_bless_ptr( const char *class, IV c_ptr ) { 
    346     dTHX; 
    347     SV* obj = newSViv(c_ptr); 
    348     sv_setref_pv(obj, class, (void*)c_ptr); 
     345st_bless_ptr( const char *class, void * c_ptr ) { 
     346    dTHX; 
     347    SV* obj = newSViv( PTR2IV( c_ptr ) ); // use instead of sv_newmortal(). 
     348    sv_setref_pv(obj, class, c_ptr); 
    349349    return obj; 
    350350} 
    351351 
    352352/* return the C pointer from a Perl blessed O_OBJECT */ 
    353 static IV  
     353static void *  
    354354st_extract_ptr( SV* object ) { 
    355355    dTHX; 
    356     return SvIV((SV*)SvRV( object )); 
     356    return INT2PTR( void*, SvIV(SvRV( object )) ); 
    357357} 
    358358 
     
    675675            } 
    676676             
    677             tok = st_bless_ptr(ST_CLASS_TOKEN, (IV)token); 
     677            tok = st_bless_ptr(ST_CLASS_TOKEN, token); 
    678678            av_push(tokens, tok); 
    679679            if (token->is_sentence_start) { 
     
    703703        } 
    704704         
    705         tok = st_bless_ptr(ST_CLASS_TOKEN, (IV)token); 
     705        tok = st_bless_ptr(ST_CLASS_TOKEN, token); 
    706706        if (heat_seeker != NULL) { 
    707707            if (heat_seeker_is_CV) { 
     
    755755        } 
    756756 
    757         tok = st_bless_ptr(ST_CLASS_TOKEN, (IV)token); 
     757        tok = st_bless_ptr(ST_CLASS_TOKEN, token); 
    758758        av_push(tokens, tok); 
    759759    } 
     
    761761    return st_bless_ptr( 
    762762            ST_CLASS_TOKENLIST,  
    763             (IV)st_new_token_list(tokens, heat, sentence_starts, num_tokens) 
     763            st_new_token_list(tokens, heat, sentence_starts, num_tokens) 
    764764           ); 
    765765} 
  • Search-Tools/trunk/search-tools.h

    r2716 r2821  
    6767*/ 
    6868static SV*      st_av_fetch( AV* a, I32 index ); 
    69 static IV       st_av_fetch_ptr( AV* a, I32 index ); 
     69static void*    st_av_fetch_ptr( AV* a, I32 index ); 
    7070static SV*      st_hv_fetch( HV* h, const char* key ); 
    7171static SV*      st_hvref_fetch( SV* h, const char* key ); 
     
    8787static SV*      st_new_hash_object(const char *class); 
    8888*/ 
    89 static SV*      st_bless_ptr( const char* class, IV c_ptr ); 
    90 static IV       st_extract_ptr( SV* object ); 
     89static SV*      st_bless_ptr( const char* class, void * c_ptr ); 
     90static void*    st_extract_ptr( SV* object ); 
    9191static void*    st_malloc(size_t size); 
    9292static void     st_free_token(st_token *tok); 
  • Search-Tools/trunk/typemap

    r2018 r2821  
    77O_OBJECT 
    88    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) 
    9             $var = ($type)SvIV((SV*)SvRV( $arg )); 
     9            $var = INT2PTR ($type, SvIV (SvRV ($arg))); 
    1010    else{ 
    1111            warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); 
Note: See TracChangeset for help on using the changeset viewer.