On Fri, Aug 4, 2017 at 5:01 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Igor Korot <ikoro...@gmail.com> writes:
>> I have a following piece of code:
>> PGresult *res = PQexecPrepared();
>> status = PQresultStatue( res );
>> if( status == PGRES_TUPLES_OK )
>> for( int j = 0; j < PQntuples( res ); j++ )
>> char *foo = PQgetValue( res, j, 0 );
>> char *bar = PQgetValue( res, j, 1 );
>> MyObject *obj = new MyObject( foo, bar );
>> if( SetAdditionalProperties( obj ) )
>> result = 1;
>> PQclear( res );
> What I'm wondering about is whether the MyObject constructor is making
> copies of the strings it's passed, or whether it thinks it can just hold
> onto those pointers. The pointers would be dangling once you do PQclear.
> Now, if the MyObject has gone out of scope and been destroyed, which
> this coding suggests would happen, then that shouldn't matter ... but
> maybe the pointers got copied to somewhere longer-lived? Anyway, there's
> nothing visibly wrong with what you showed us, so the problem is somewhere
I need to deeply apologize.
I cam home yesterday, look at the code again and saw the PQclear()
call in the if()
However it leads to another question - should PQclear set the pointer to NULL?
Sorry for the noise once again and thank you for reading.
> regards, tom lane
Sent via pgsql-general mailing list (email@example.com)
To make changes to your subscription: