And why not even get rid of mem_cb:-)
> 
> typedef void (*cb_t) ();
> 
> static void cb_leak(MEM *m, void *cb)
>         {
>         void (*mem_callback)()=*((cb_t *)cb);
>         mem_callback(m->order,m->file,m->line,m->num,m->addr);
>         }
> 
> void CRYPTO_mem_leaks_cb(void (*cb)())
>         {
#if 0
>         void (*mem_cb)() = cb;
#endif
>         if (mh == NULL) return;
>         CRYPTO_w_lock(CRYPTO_LOCK_MALLOC2);
#if 0
>         lh_doall_arg(mh,(void (*)())cb_leak,(void *)(&mem_cb));
#else
          lh_doall_arg(mh,(void (*)())cb_leak,(void *)(&cb));
#endif
>         CRYPTO_w_unlock(CRYPTO_LOCK_MALLOC2);
>         }
> 
And as for multi-thread safety. CRYPTO_w_lock is supposed to take care
of it, right? I mean my comment wasn't really relevant, huh?

Andy.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to