diff options
| -rw-r--r-- | modules/config-utilities.el | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/modules/config-utilities.el b/modules/config-utilities.el index 8d094fda..4ed086d1 100644 --- a/modules/config-utilities.el +++ b/modules/config-utilities.el @@ -7,6 +7,8 @@ ;;; Code: (require 'cl-lib) +(require 'cl-generic) +(require 'eieio) (require 'find-lisp) (require 'profiler) @@ -45,6 +47,24 @@ (keymap-set cj/debug-config-keymap "t" #'toggle-debug-on-error) +;;; ----------------------------- Package Workarounds -------------------------- + +;; EmacSQL 4.3.1 registers finalizers that call `emacsql-close'. The sqlite +;; backends set their handle slot to nil after an explicit close, so a later +;; finalizer can otherwise call `sqlite-close' with nil and log: +;; finalizer failed: (wrong-type-argument sqlitep nil) +(with-eval-after-load 'emacsql-sqlite-builtin + (cl-defmethod emacsql-close :around + ((connection emacsql-sqlite-builtin-connection)) + (when (oref connection handle) + (cl-call-next-method)))) + +(with-eval-after-load 'emacsql-sqlite-module + (cl-defmethod emacsql-close :around + ((connection emacsql-sqlite-module-connection)) + (when (oref connection handle) + (cl-call-next-method)))) + ;;; -------------------------------- Benchmarking ------------------------------- (defmacro with-timer (title &rest forms) |
