From eb600c79a4288c38cb414d9a3ba45607b27bf634 Mon Sep 17 00:00:00 2001
From: Peter Broadbery
Date: Thu, 12 Nov 2015 20:43:58 +0000
Subject: [PATCH] engine-utilities.scm: Add a couple of hashtable functions.
---
src/engine/engine-utilities.scm | 12 ++++++++++++
src/engine/engine.scm | 2 ++
2 files changed, 14 insertions(+)
diff --git a/src/engine/engine-utilities.scm b/src/engine/engine-utilities.scm
index 238866a499..3ea6bec9a9 100644
--- a/src/engine/engine-utilities.scm
+++ b/src/engine/engine-utilities.scm
@@ -80,6 +80,18 @@
(+ acct-depth (- (gnc-account-get-tree-depth acct) 1))))
accounts)))
+(define (account-assoc acc alist)
+ (find (lambda (pair) (account-same? acc (car pair))) alist))
+
+(define (account-hash acc size)
+ (remainder (string-hash (gncAccountGetGUID acc)) size))
+
+(define (account-hashtable-ref table account)
+ (hashx-ref account-hash account-assoc table account))
+
+(define (account-hashtable-set! table account value)
+ (hashx-set! account-hash account-assoc table account value))
+
;; Splits
(export split-same?)
(export split-in-list?)
diff --git a/src/engine/engine.scm b/src/engine/engine.scm
index 14847f9516..00bd61ce6e 100644
--- a/src/engine/engine.scm
+++ b/src/engine/engine.scm
@@ -79,6 +79,8 @@
(export account-full-name)
(export account-list-predicate)
(export accounts-get-children-depth)
+(export account-hashtable-ref)
+(export account-hashtable-set!)
(export split-same?)
(export split-in-list?)