lib/sqlite/Util: add ExecuteModified()
This commit is contained in:
		| @@ -137,6 +137,17 @@ ExecuteChanges(sqlite3_stmt *stmt) | ||||
| 	return sqlite3_changes(sqlite3_db_handle(stmt)); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Wrapper for ExecuteChanges() that returns true if at least one row | ||||
|  * was modified.  Returns false if nothing was modified or if an error | ||||
|  * occurred. | ||||
|  */ | ||||
| static inline bool | ||||
| ExecuteModified(sqlite3_stmt *stmt) | ||||
| { | ||||
| 	return ExecuteChanges(stmt) > 0; | ||||
| } | ||||
|  | ||||
| template<typename F> | ||||
| static inline bool | ||||
| ExecuteForEach(sqlite3_stmt *stmt, F &&f) | ||||
|   | ||||
| @@ -224,15 +224,14 @@ sticker_update_value(const char *type, const char *uri, | ||||
| 	if (!BindAll(stmt, value, type, uri, name)) | ||||
| 		return false; | ||||
|  | ||||
| 	int ret = ExecuteChanges(stmt); | ||||
| 	if (ret < 0) | ||||
| 		return false; | ||||
| 	bool modified = ExecuteModified(stmt); | ||||
|  | ||||
| 	sqlite3_reset(stmt); | ||||
| 	sqlite3_clear_bindings(stmt); | ||||
|  | ||||
| 	idle_add(IDLE_STICKER); | ||||
| 	return ret > 0; | ||||
| 	if (modified) | ||||
| 		idle_add(IDLE_STICKER); | ||||
| 	return modified; | ||||
| } | ||||
|  | ||||
| static bool | ||||
| @@ -291,14 +290,14 @@ sticker_delete(const char *type, const char *uri) | ||||
| 	if (!BindAll(stmt, type, uri)) | ||||
| 		return false; | ||||
|  | ||||
| 	if (!ExecuteCommand(stmt)) | ||||
| 		return false; | ||||
| 	bool modified = ExecuteModified(stmt); | ||||
|  | ||||
| 	sqlite3_reset(stmt); | ||||
| 	sqlite3_clear_bindings(stmt); | ||||
|  | ||||
| 	idle_add(IDLE_STICKER); | ||||
| 	return true; | ||||
| 	if (modified) | ||||
| 		idle_add(IDLE_STICKER); | ||||
| 	return modified; | ||||
| } | ||||
|  | ||||
| bool | ||||
| @@ -313,15 +312,14 @@ sticker_delete_value(const char *type, const char *uri, const char *name) | ||||
| 	if (!BindAll(stmt, type, uri, name)) | ||||
| 		return false; | ||||
|  | ||||
| 	int ret = ExecuteChanges(stmt); | ||||
| 	if (ret < 0) | ||||
| 		return false; | ||||
| 	bool modified = ExecuteModified(stmt); | ||||
|  | ||||
| 	sqlite3_reset(stmt); | ||||
| 	sqlite3_clear_bindings(stmt); | ||||
|  | ||||
| 	idle_add(IDLE_STICKER); | ||||
| 	return ret > 0; | ||||
| 	if (modified) | ||||
| 		idle_add(IDLE_STICKER); | ||||
| 	return modified; | ||||
| } | ||||
|  | ||||
| void | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann