From c37e82c356eafd1814ec3d384844abf8896ec693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nirgal=20Vourg=C3=A8re?= Date: Mon, 16 Jan 2012 02:58:46 +0100 Subject: [PATCH] Don't call exit() from libmdb.so Libraries should return an error code, not kill the caller. Thanks lintian. --- src/libmdb/write.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/libmdb/write.c b/src/libmdb/write.c index 7e43bd4..b5102e7 100644 --- a/src/libmdb/write.c +++ b/src/libmdb/write.c @@ -554,8 +554,8 @@ mdb_insert_row(MdbTableDef *table, int num_fields, MdbField *fields) } mdb_debug(MDB_DEBUG_WRITE, "writing page %d", pgnum); if (!mdb_write_pg(mdb, pgnum)) { - fprintf(stderr, "write failed! exiting...\n"); - exit(1); + fprintf(stderr, "write failed!\n"); + return 0; } mdb_update_indexes(table, num_fields, fields, pgnum, rownum); @@ -685,8 +685,14 @@ unsigned int num_fields; } /* do it! */ mdb_replace_row(table, table->cur_row-1, row_buffer, new_row_size); - return 0; + return 0; /* FIXME */ } + +/* WARNING the return code is opposite to convention used elsewhere: + * returns 0 on success + * returns 1 on failure + * This might change on next ABI break. + */ int mdb_replace_row(MdbTableDef *table, int row, void *new_row, int new_row_size) { @@ -745,8 +751,8 @@ int i, pos; } /* drum roll, please */ if (!mdb_write_pg(mdb, table->cur_phys_pg)) { - fprintf(stderr, "write failed! exiting...\n"); - exit(1); + fprintf(stderr, "write failed!\n"); + return 1; } return 0; }