Null this in pgConn::GetStatus

From: Stuart Gathman <stuart(at)gathman(dot)org>
To: pgadmin-hackers(at)postgresql(dot)org
Subject: Null this in pgConn::GetStatus
Date: 2016-07-04 02:44:07
Message-ID: 02898a62-c592-6eb9-1ff9-f76ac34eeb57@gathman.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

pgadmin3-1.22.1

When compiled with gcc6, the evil practice of "this == 0" fails
horribly. The most obvious effect is crashing during startup. I've
attached a simple patch. The Fedora bugzilla is here:

https://bugzilla.redhat.com/show_bug.cgi?id=1335043

A detailed explanation of why this == 0 is evil:
http://www.viva64.com/en/b/0226/

The patch moves the guts of pgConn::GetStatus() to a static function,
where comparing the ptr arg to 0 is well defined, and makes the
GetStatus() member function call the static function inline. It is
still technically undefined when calling the GetStatus member function
on a null ptr - but for now the compiler is not eliminating the test.
It is also a step in right direction, which would be to use the static
function at calling sites where the ptr could be null.

Attachment Content-Type Size
pgadmin3-nullthis.patch text/x-patch 1.1 KB

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Stuart Gathman 2016-07-04 03:19:35 Re: Null this in pgConn::GetStatus
Previous Message Dave Page 2016-07-02 16:30:12 Re: Patch for pgAdmin docs