aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/ocda/abstraction
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-08-26 22:53:30 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-08-28 10:02:05 -0400
commita4ef474cabc4113c3dca72bf08bc477c452c624c (patch)
tree0252d8156789e55c63dfb0b210d5da52552d766d /src/sisudoc/ocda/abstraction
parent.ssp digest: add image file's own pixel dimensions (diff)
image digest: single read, cache file read & hash
For image digests cache file read & hash, one read per image file Fix issue: images referenced from several objects were read and hashed once per reference. [as an example in the sisu-manual sm_tux.png accounts for 6 of the document's image records (12 across the sample set), each of them a fresh read of the same bytes, and source_pod.d hashes the file again for digests.txt.] Memoise on the full path within safeComputeHashAndSize. static is thread-local in D, so documents processed in parallel each get their own cache and no synchronisation is involved. Files are not expected to change during a run. Output is unchanged: identical .ssp output. (An image that is missing or unreadable now warns once to stdout rather than once per reference). (assisted by Claude-Code)
Diffstat (limited to 'src/sisudoc/ocda/abstraction')
-rw-r--r--src/sisudoc/ocda/abstraction/ssp.d1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/sisudoc/ocda/abstraction/ssp.d b/src/sisudoc/ocda/abstraction/ssp.d
index 25cc467..1d1ea22 100644
--- a/src/sisudoc/ocda/abstraction/ssp.d
+++ b/src/sisudoc/ocda/abstraction/ssp.d
@@ -301,7 +301,6 @@ template spineAbstractionTxt() {
~ " missing:true"
: ".image: " ~ i.fileName
~ " sha256:" ~ i.fileHash_sha256.toHexString.to!string
- ~ " sha256:" ~ i.fileHash_sha256.toHexString.to!string
~ " bytes:" ~ i.fileSize.to!string
~ ((i.imageWidth > 0 && i.imageHeight > 0)
? " px:" ~ i.imageWidth.to!string