Index: sql/connection.cc |
diff --git a/sql/connection.cc b/sql/connection.cc |
index f04eb3bd7ee3c135892fd9225043e59fdcaf6eed..06dc8889dad075aa819b067edc18f0b8b41108bb 100644 |
--- a/sql/connection.cc |
+++ b/sql/connection.cc |
@@ -860,7 +860,10 @@ int Connection::OnSqliteError(int err, sql::Statement *stmt) { |
<< ": " << GetErrorMessage(); |
if (!error_callback_.is_null()) { |
- error_callback_.Run(err, stmt); |
+ // Fire from a copy of the callback in case of reentry into |
+ // re/set_error_callback(). |
+ // TODO(shess): <http://crbug.com/254584> |
+ ErrorCallback(error_callback_).Run(err, stmt); |
return err; |
} |