From 22343b851241124c0e444e676e39bc471b344f6d Mon Sep 17 00:00:00 2001 From: Joshua Suskalo Date: Fri, 1 Oct 2021 10:37:38 -0500 Subject: [PATCH] Fix a bug where void returns on upcalls crash the JVM --- CHANGELOG.md | 1 + src/clj/coffi/mem.clj | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a0887b..e663a6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. This change ## [Unreleased] ### Fixed +- Void return types on upcalls crash the JVM - Invalid implementation of serialize-into for primitive types ## [0.1.192] - 2021-09-30 diff --git a/src/clj/coffi/mem.clj b/src/clj/coffi/mem.clj index 1aa6dcb..ff0ce26 100644 --- a/src/clj/coffi/mem.clj +++ b/src/clj/coffi/mem.clj @@ -315,7 +315,8 @@ (defmethod serialize* :default [obj type _scope] (if-let [prim (primitive-type type)] - ((primitive-cast prim) obj) + (when-not (= ::void prim) + ((primitive-cast prim) obj)) (throw (ex-info "Attempted to serialize a non-primitive type with primitive methods" {:type type :object obj}))))