Subject: Re: "gnutls" under Darwin (was: CVS commit: pkgsrc/security/gnutls)
To: None <tech-pkg@NetBSD.org>
From: Matthias Scheler <tron@zhadum.org.uk>
List: tech-pkg
Date: 01/24/2007 21:37:38
On Wed, Jan 24, 2007 at 04:30:19PM -0500, Todd Vierling wrote:
> I just verified, the sample code at that link doesn't even compile on
> modern gcc for the same reason I described:

The code in GnuTLS looks different. From the header file:

class credential {
{
     public:
[...]
         credentials( credentials& c);
[...]
     private:
         virtual void set_ptr(void *) = 0;
[...]
}

From the actual implementation:

credentials::credentials( credentials& c)
{
    this->type = c.type;
    this->set_ptr( c.ptr());
}

[Why are the using "this->" here? It's completely pointless.]

G++ under Mac OS X does for some weird reason not use the vtable in that
constructor. It instead tries to call the implementation of of the
set_ptr() method provided by the "credential" class. But that is of
course not defined because the method is pure virtual and only defined
in derived classes.

	Kind regards

-- 
Matthias Scheler                                  http://zhadum.org.uk/