diff options
Diffstat (limited to 'indra/media_plugins')
3 files changed, 17 insertions, 13 deletions
| diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h index 77d6d19663..6bc272c009 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h @@ -37,6 +37,7 @@ extern "C" {  #include <stdio.h>  #include <gst/gst.h> +#include "apr_pools.h"  #include "apr_dso.h"  } diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp index 93a10424dd..2e4baaa9eb 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp @@ -28,18 +28,16 @@  #if LL_GSTREAMER010_ENABLED -#include "linden_common.h" -  #include <string>  extern "C" {  #include <gst/gst.h> +#include "apr_pools.h"  #include "apr_dso.h"  }  #include "llmediaimplgstreamertriviallogging.h" -#include "llaprpool.h"  #define LL_GST_SYM(REQ, GSTSYM, RTN, ...) RTN (*ll##GSTSYM)(__VA_ARGS__) = NULL  #include "llmediaimplgstreamer_syms_raw.inc" @@ -58,7 +56,7 @@ void ll_gst_debug_register_funcptr(GstDebugFuncPtr func, gchar* ptrname)  }  static bool sSymsGrabbed = false; -static LLAPRPool sSymGSTDSOMemoryPool; +static apr_pool_t *sSymGSTDSOMemoryPool = NULL;  static apr_dso_handle_t *sSymGSTDSOHandleG = NULL;  static apr_dso_handle_t *sSymGSTDSOHandleV = NULL; @@ -80,11 +78,11 @@ bool grab_gst_syms(std::string gst_dso_name,  #define LL_GST_SYM(REQ, GSTSYM, RTN, ...) do{rv = apr_dso_sym((apr_dso_handle_sym_t*)&ll##GSTSYM, sSymGSTDSOHandle, #GSTSYM); if (rv != APR_SUCCESS) {INFOMSG("Failed to grab symbol: %s", #GSTSYM); if (REQ) sym_error = true;} else DEBUGMSG("grabbed symbol: %s from %p", #GSTSYM, (void*)ll##GSTSYM);}while(0)  	//attempt to load the shared libraries -	sSymGSTDSOMemoryPool.create(); +	apr_pool_create(&sSymGSTDSOMemoryPool, NULL);  	if ( APR_SUCCESS == (rv = apr_dso_load(&sSymGSTDSOHandle,  					       gst_dso_name.c_str(), -					       sSymGSTDSOMemoryPool()) )) +					       sSymGSTDSOMemoryPool) ))  	{  		INFOMSG("Found DSO: %s", gst_dso_name.c_str());  #include "llmediaimplgstreamer_syms_raw.inc" @@ -98,7 +96,7 @@ bool grab_gst_syms(std::string gst_dso_name,  		if ( APR_SUCCESS ==  		     (rv = apr_dso_load(&sSymGSTDSOHandle,  					gst_dso_name_vid.c_str(), -					sSymGSTDSOMemoryPool()) )) +					sSymGSTDSOMemoryPool) ))  		{  			INFOMSG("Found DSO: %s", gst_dso_name_vid.c_str());  #include "llmediaimplgstreamer_syms_rawv.inc" @@ -152,7 +150,8 @@ void ungrab_gst_syms()  	if ( sSymGSTDSOMemoryPool )  	{ -		sSymGSTDSOMemoryPool.destroy(); +		apr_pool_destroy(sSymGSTDSOMemoryPool); +		sSymGSTDSOMemoryPool = NULL;  	}  	// NULL-out all of the symbols we'd grabbed diff --git a/indra/media_plugins/webkit/linux_volume_catcher.cpp b/indra/media_plugins/webkit/linux_volume_catcher.cpp index 94dfd80700..91be3a89e9 100644 --- a/indra/media_plugins/webkit/linux_volume_catcher.cpp +++ b/indra/media_plugins/webkit/linux_volume_catcher.cpp @@ -65,7 +65,7 @@ extern "C" {  #undef LL_PA_SYM  static bool sSymsGrabbed = false; -static LLAPRPool sSymPADSOMemoryPool; +static apr_pool_t *sSymPADSOMemoryPool = NULL;  static apr_dso_handle_t *sSymPADSOHandleG = NULL;  bool grab_pa_syms(std::string pulse_dso_name) @@ -84,11 +84,11 @@ bool grab_pa_syms(std::string pulse_dso_name)  #define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) do{rv = apr_dso_sym((apr_dso_handle_sym_t*)&ll##PASYM, sSymPADSOHandle, #PASYM); if (rv != APR_SUCCESS) {INFOMSG("Failed to grab symbol: %s", #PASYM); if (REQUIRED) sym_error = true;} else DEBUGMSG("grabbed symbol: %s from %p", #PASYM, (void*)ll##PASYM);}while(0)  	//attempt to load the shared library -	sSymPADSOMemoryPool.create(); +	apr_pool_create(&sSymPADSOMemoryPool, NULL);  	if ( APR_SUCCESS == (rv = apr_dso_load(&sSymPADSOHandle,  					       pulse_dso_name.c_str(), -					       sSymPADSOMemoryPool()) )) +					       sSymPADSOMemoryPool) ))  	{  		INFOMSG("Found DSO: %s", pulse_dso_name.c_str()); @@ -130,8 +130,12 @@ void ungrab_pa_syms()  		apr_dso_unload(sSymPADSOHandleG);  		sSymPADSOHandleG = NULL;  	} - -	sSymPADSOMemoryPool.destroy(); +	 +	if ( sSymPADSOMemoryPool ) +	{ +		apr_pool_destroy(sSymPADSOMemoryPool); +		sSymPADSOMemoryPool = NULL; +	}  	// NULL-out all of the symbols we'd grabbed  #define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) do{ll##PASYM = NULL;}while(0) | 
