Re: [C++-sig] gtkglext & mesa = __cxa_allocate_exception

2010-09-14 Thread Leonard Ritter
On Tue, Sep 14, 2010 at 9:12 PM, Leonard Ritter wrote: > it seems that when gtk.glext is imported in python, and a boost python > module hits a StopIteration exception (as it is usual for generators), > the exception is not caught and the app segfaults. that is, unless OpenGL.GL is

[C++-sig] gtkglext & mesa = __cxa_allocate_exception

2010-09-14 Thread Leonard Ritter
as a quick follow-up to this two year old post here: http://www.mail-archive.com/cplusplus-sig@python.org/msg00245.html even with linking to libstdc++ first, as i always do, i'm hitting upon this error on ubuntu 10.04 yet again, after i switched the nvidia driver to nouveau. it seems that when g

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
solved! On Mon, Dec 15, 2008 at 5:48 PM, Leonard Ritter wrote: > searching for __cxa_allocate_exception segfault i got quite a few hits in > different projects, of which this wiki entry devotes a whole page to the > issue: > > http://wiki.fifengine.de/Segfault_in_cxa_allocate_ex

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
On Mon, Dec 15, 2008 at 5:38 PM, Leonard Ritter wrote: > i tried both 1.34.1 and 1.35.0 available in my distribution (ubuntu), same >>> problem. i am fetching through the boost.python code to see if i can find >>> something interesting. >>> >> >> i shoul

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
On Mon, Dec 15, 2008 at 5:33 PM, Leonard Ritter wrote: > On Mon, Dec 15, 2008 at 5:29 PM, Leonard Ritter wrote: > >> On Mon, Dec 15, 2008 at 5:27 PM, Stefan Seefeld wrote: >> >>> The throw point isn't very interesting in this case: In Python, iteration

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
On Mon, Dec 15, 2008 at 5:29 PM, Leonard Ritter wrote: > On Mon, Dec 15, 2008 at 5:27 PM, Stefan Seefeld wrote: > >> The throw point isn't very interesting in this case: In Python, iteration >> is terminated by means of a 'StopIteration' exception. The question

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
On Mon, Dec 15, 2008 at 5:27 PM, Stefan Seefeld wrote: > The throw point isn't very interesting in this case: In Python, iteration > is terminated by means of a 'StopIteration' exception. The question is why > this exception manages to escape uncaught. i tried both 1.34.1 and 1.35.0 available in

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-15 Thread Leonard Ritter
On Sun, Dec 14, 2008 at 11:22 PM, Leonard Ritter wrote: > That's hard to tell without more context: Who is doing the iteration, for >> example ? > > I'm sorry. I was a bit stressed out yesterday. I recognize that you only want to help, and I should be more patient.

Re: [C++-sig] preventing boost::python::throw_error_already_set

2008-12-14 Thread Leonard Ritter
On Thu, Dec 11, 2008 at 5:32 PM, Stefan Seefeld wrote: > Leonard Ritter wrote: > >> hi everyone, >> >> i'm having a problem where a boost::python::throw_error_already_set is >> being thrown and causes a segfault (linux). unfortunately the error happens >>

[C++-sig] preventing boost::python::throw_error_already_set

2008-12-11 Thread Leonard Ritter
hi everyone, i'm having a problem where a boost::python::throw_error_already_set is being thrown and causes a segfault (linux). unfortunately the error happens from within python, when reaching the end of an iteration through a vector array, which was exported using the vector indexing suite. is

Re: [C++-sig] wrapper and shared_ptr - how to combine?

2008-12-03 Thread Leonard Ritter
On Sat, Nov 29, 2008 at 5:11 PM, David Abrahams <[EMAIL PROTECTED]> wrote: > Yoiks! You clearly need gSTLFilt. Please post such things as > attachments or in some other way that doesn't insert linebreaks. oh, awesome suggestion, thank you very much! gcc/eclipse outputs that stuff this way, and

Re: [C++-sig] wrapper and shared_ptr - how to combine?

2008-11-15 Thread Leonard Ritter
It seems I still have no idea what is going on, and I'm starting to become a bit desparate. I'm going to post as much as possible about the issue I'm having. this is the smallest reproduce for the problem i'm having. typedef boost::shared_ptr ActorPtr; class Actor { public: ActorPtr parent;

Re: [C++-sig] wrapper and shared_ptr - how to combine?

2008-11-15 Thread Leonard Ritter
is a tree element with children and a parent pointer. I guess that assigning ActorPtr(this) appears to construct a new pointer for an object that is already registered to boost.python. On Sat, Nov 15, 2008 at 7:07 PM, Leonard Ritter <[EMAIL PROTECTED]> wrote: > yes, that's what i want.

Re: [C++-sig] wrapper and shared_ptr - how to combine?

2008-11-15 Thread Leonard Ritter
PM, Stefan Seefeld <[EMAIL PROTECTED]>wrote: > Leonard Ritter wrote: > >> >> class_> >> which I did, but that gives me a compiler error if Actor is abstract, and >> if I declare it non-abstract, calls to wrapping PyActor methods fail in >> Python. I guess th

[C++-sig] wrapper and shared_ptr - how to combine?

2008-11-15 Thread Leonard Ritter
i am wrapping an abstract class "Actor" which is to be implemented partially in Python, using a wrapper class that looks like this: class PyActor : public Actor, public wrapper { public: }; the boost.python export code looks like this: class_("Actor"); this would be all good and well, un

Re: [C++-sig] returning vector arrays and multiple values

2008-10-23 Thread Leonard Ritter
thanks for your help, the solution i used was this one: #include #include using namespace boost::python; tuple py_audio_get_recording_buffer() { int write_ptr = 0; std::vector buffer = audio_get_recording_buffer(write_ptr); return make_tuple(buffer, write_ptr); } BOOST_PYTHON_MODUL

[C++-sig] returning vector arrays and multiple values

2008-10-23 Thread Leonard Ritter
i have a function which i wish to wrap, which returns a float buffer and an integer: std::vector get_recording_buffer(/* out */ size_t &write_ptr); alternatively, the function could also just return a pointer to a float array: const float *get_recording_buffer(/* out */ size_t &size, /* out */ s