[Haskell-cafe] Allocating a new ByteString

Tristan Seligmann mithrandi at mithrandi.net
Tue Dec 23 06:19:50 UTC 2014


On 23 December 2014 at 08:10, Yuras Shumovich <shumovichy at gmail.com> wrote:
> Looks like you need 'unsafePackCStringFinalizer' (or one of it's variants)
> from Data.ByteString.Unsafe module. It lets you reuse the buffer and
> deallocate it in finalizer. Something similar is used e.g. in 'kyotocabinet'
> package.

I tried using this, but it seems like the pointer created by
mallocForeignPtrBytes is freed as soon as it is no longer referenced
(upon returning from the function). Then, later, when the bytestring
is finalized, the pointer is freed again causing an abort on
double-free. How do I "transfer" ownership of the pointer?
-- 
mithrandi, i Ainil en-Balandor, a faer Ambar


More information about the Haskell-Cafe mailing list