Quoting Joe Orton <[EMAIL PROTECTED]>:
... or OOM checking again.
A question in relation to this. I'm guessing there is not much use in
checking for APR pool allocation errors because the program is going
to blow up eventually, so these tests are mostly meaningless (at least
that's how I understood the "don't check for NULLs" policy).
However, does the same apply to foreign APIs? I recently posted a
patch for MySQL driver that does something like this:
------------------------------------
(*statement)->stmt = mysql_stmt_init(sql->conn);
if ((*statement)->stmt) {
apr_pool_cleanup_register(pool, (*statement)->stmt,
(void*)mysql_stmt_close,
apr_pool_cleanup_null);
return mysql_stmt_prepare((*statement)->stmt, myquery,
strlen(myquery));
}
return CR_OUT_OF_MEMORY;
------------------------------------
Basically, mysql_stmt_init() can return NULL here, which means that
from *its* perspective, there is no more memory available. Do we trust
foreign APIs then and just let things segfault (i.e. drop the "if
((*statement)->stmt)"), or do we attempt to recover?
--
Bojan