| 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: | Whole Thread | Raw Message | 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 | 
| 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 |