Changeset 3304:3c58a7391d87 in roaraudio for libroar/roardl.c


Ignore:
Timestamp:
02/03/10 11:22:30 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

fully implement load/unload

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/roardl.c

    r3302 r3304  
    5050 struct roar_dl_lhandle * ret = NULL; 
    5151 
     52 // early errors just return. 
     53 
     54 if ( flags != ROAR_DL_FLAG_DEFAUTS ) 
     55  return NULL; 
     56 
     57 if ( (ret = roar_mm_malloc(sizeof(struct roar_dl_lhandle))) == NULL ) 
     58  return NULL; 
     59 
     60 memset(ret, 0, sizeof(struct roar_dl_lhandle)); 
     61 
     62#if defined(ROAR_HAVE_LIBDL) 
     63 ret->handle = dlopen(filename, RTLD_NOW); 
     64 
     65 if ( ret->handle == NULL ) { 
     66  roar_mm_free(ret); 
     67  return NULL; 
     68 } 
     69#else 
     70 roar_mm_free(ret); 
     71 return NULL; 
     72#endif 
     73 
    5274 if ( ret == NULL ) 
    5375  return NULL; 
     
    6183 
    6284int                      roar_dl_close(struct roar_dl_lhandle * lhandle) { 
     85 int ret = -1; 
     86 
    6387 if ( lhandle == ROAR_DL_HANDLE_DEFAULT ) 
    6488  return -1; 
     
    7094 
    7195#if defined(ROAR_HAVE_LIBDL) 
    72  return dlclose(_roardl2ldl(lhandle)); 
     96 ret = dlclose(_roardl2ldl(lhandle)); 
    7397#else 
    74  return -1; 
     98 ret = -1; 
    7599#endif 
     100 
     101 roar_mm_free(lhandle); 
     102 
     103 return ret; 
    76104} 
    77105 
Note: See TracChangeset for help on using the changeset viewer.