Changeset 490da83 in tol


Ignore:
Timestamp:
Jan 18, 2011, 10:48:14 AM (16 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
fc77a9b
Parents:
a3ef643
Message:

Fixes #1056
Initializing libltdl
Checking result of lt_dlsym due to lt_dlopen seems to return invalid an pointer when archive is not found

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3062 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/contrib/cint/tolCint.cpp

    ra3ef643 r490da83  
    3131#include <tol/tol_bsetgra.h>
    3232#include <ltdl.h>
     33
     34static int  lt_dlinit_ =  -1;
    3335
    3436typedef void      (*G__scratch_all_t)        (void);
    … …  
    6870//--------------------------------------------------------------------
    6971{
     72  if(lt_dlinit_)
     73  { lt_dlinit_ = lt_dlinit(); }
    7074  BText libraryName = "libcint"; 
    7175  BText libraryPath = "";
    … …  
    7680  #endif
    7781
    78   lt_dlhandle handleLib;
     82  lt_dlhandle handleLib=0;
    7983
    8084  // abro la DynLib
    8185  handleLib = lt_dlopen( libraryPath );
     86  BText reason( lt_dlerror( ) );
    8287  if ( !handleLib )
    8388  {
    8489  //Std(BText("\nTRACE BLoadDynLib::Evaluator 3 lt_dlerror='")+lt_dlerror()+"'");
    85     BText reason( lt_dlerror( ) );
    8690    Warning(BText("[Cint_dynamic_linkage(\"")+libraryPath+"\")]"+" \n"
    8791    "  lt_dlopen error:'"+reason+"'");
    8892    return(false);
    8993  }
     94  G__init_cint_ptr = reinterpret_cast<G__init_cint_t>( lt_dlsym( handleLib, "G__init_cint" ) );
     95  if(!G__init_cint_ptr)
     96  {
     97    Warning(BText("[Cint_dynamic_linkage(\"")+libraryPath+"\")]"+" \n"
     98    "  lt_dlopen error:'"+reason+"'");
     99    return(false);     
     100  }
    90101  G__scratch_all_ptr = reinterpret_cast<G__scratch_all_t>( lt_dlsym( handleLib, "G__scratch_all" ) );
    91102  G__lasterror_filename_ptr = reinterpret_cast<G__lasterror_filename_t>( lt_dlsym( handleLib, "G__lasterror_filename" ) );
    92103  G__lasterror_linenum_ptr = reinterpret_cast<G__lasterror_linenum_t>( lt_dlsym( handleLib, "G__lasterror_linenum" ) );
    93   G__init_cint_ptr = reinterpret_cast<G__init_cint_t>( lt_dlsym( handleLib, "G__init_cint" ) );
    94104  G__set_errmsgcallback_ptr = reinterpret_cast<G__set_errmsgcallback_t>( lt_dlsym( handleLib, "G__set_errmsgcallback" ) );
    95105  G__setautoconsole_ptr = reinterpret_cast<G__setautoconsole_t>( lt_dlsym( handleLib, "G__setautoconsole" ) );
Note: See TracChangeset for help on using the changeset viewer.