From: Chris M. <cm...@re...> - 2003-03-02 21:53:34
Attachments:
oprofile-libdb.patch
|
John, Per your request from my last patch on this subject, I've completely re-written the patch such that: 1. libdb calls that used exit() or assert() (db_open(), db_insert(), etc.) now instead return success/failure codes, and error messages produced by those calls, instead of being sent to stderr, are made available to the caller for handling. 3. existing uses of affected libdb calls now make use of the error return and react appropriately. (dumping the message to stderr and either exiting if nothing further useful can be done after an error, or returning an error indication of it's own if the libdb call was made from a function capable of returning an error indication.) This patch is based on the new version of oprofile you released a few days ago. It's been tested on an internal Linux release using a 2.4.20-6smp kernel (probably modified, but I don't know for sure). Chris Moller Red Hat, Inc. |
From: John L. <le...@mo...> - 2003-03-03 01:05:43
|
On Sun, Mar 02, 2003 at 04:54:37PM -0500, Chris Moller wrote: > - fprintf(stderr, > + fprintf(stderr,y I'm guessing you did actually test the patch and this typo creeped in afterwards :) > + rc = db_insert(&dest, ((i*i) ^ (i+i)), ((i*i) ^ i)); > + if (rc != EXIT_SUCCESS) break; We don't do that here ... if (rc != EXIT_SUCCESS) break; > - assert(index > 0 && index < hash->descr->current_size); > + if (index <= 0 || index >= hash->descr->current_size) > + return EXIT_FAILURE; whitespace > + if (DB_NODE_NR_INVALID == new_node) { > + fwrite(err_msg, strlen(err_msg), 1, stderr); > + free(err_msg); > + return EXIT_FAILURE; > + } whitespace > +db_index_t db_hash_add_node(samples_db_t * hash, char ** err_msg_p) I hate hungarian notation ... what does the _p buy us ? Anyway, these are minor points. I'll make the necessary changes myself and apply your patch. Thanks. A ChangeLog entry would be good next time though ;) regards, john |