On Sat, 26 May 2001 14:19:25 -0500, you wrote: >I believe this would break type saftey. These are very carefully constructed >to >ensure that the proper hook fn is registered for the appropriate hook. > >I'll take a look at your patch later today and see what (if) it breaks >anything, >or if we were simply missing the "C" namespace wrappers. > The problem is that apr_array_push returns a void pointer. And since pHook is a predefined data type there is a type problem. The extern "C" wrappers only make the function behave using C linkage. The code within is still treated as C++. I tried it and the same type cast error still occured.
I think the only way to solve is this to use a type cast. But correct me if I am wrong. Christian >----- Original Message ----- >From: "Christian Gross" <[EMAIL PROTECTED]> >Sent: Saturday, May 26, 2001 1:33 PM > > >I was playing around with hooks and noticed that there is a problem >with using hooks on C++. The problem was that C++ does not allow a >type conversion without a type cast. Following is the fix > >--------------------------------------------------------------- >--- c:/httpd2_16/srclib/apr-util/include/apr_hooks.h Wed Apr 4 >01:35:46 2001 >+++ c:/httpd/srclib/apr-util/include/apr_hooks.h Sat May 26 >14:21:58 2001 >@@ -98,7 +98,7 @@ > >_hooks.link_##name=apr_array_make(apr_global_hook_pool,1,sizeof(ns##_LINK_##name##_t)); >\ > apr_hook_sort_register(#name,&_hooks.link_##name); \ > } \ >- pHook=apr_array_push(_hooks.link_##name); \ >+ pHook=(ns##_LINK_##name##_t *)apr_array_push(_hooks.link_##name); >\ > pHook->pFunc=pf; \ > pHook->aszPredecessors=aszPre; \ > pHook->aszSuccessors=aszSucc; \ > > >
