pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: x11/qt4-libs fails to build on NetBSD sparc64



On Wed, Jun 11, 2008 at 11:52:27PM +0100, raymond.meyer%rambler.ru@localhost 
wrote:
> template <typename T>
> QVector<T> &QVector<T>::operator=(const QVector<T> &v)
> {
>     typename QVector::Data *x = v.d;
>     x->ref.ref();
>     x = qAtomicSetPtr(&d, x);
>     if (!x->ref.deref())
>         free(x);
>     if (!d->sharable)
>         detach_helper();
>     return *this;
> }
> 
> I'm not sure how the line 'if (!d->sharable)' can cause 'Bus error'. Any 
> ideas? Where does symbol 'd' come from? It's not declared as variable or 
> anything?

It is a member in the QVector<T> class, as you can see in the v.d access
in the *x declaration. Check the stacktrace, this kind of problem typically
happens (a) after memory corruption of the vector, or (b) after a bogus cast
(i.e. *this is not realy a QVector<T>).

Martin


Home | Main Index | Thread Index | Old Index