From 960f18a6e0f80d093952015c5a4a877df94f7fe7 Mon Sep 17 00:00:00 2001 From: Avril Date: Thu, 10 Jun 2021 15:49:48 +0100 Subject: [PATCH] c++: CowException for handling errors/poisoned cows --- src/cow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cow.cpp b/src/cow.cpp index a8cb14f..d84df09 100644 --- a/src/cow.cpp +++ b/src/cow.cpp @@ -28,13 +28,13 @@ Cow::_inner::~_inner() { cow.poisoned=true; } Cow::_inner::_inner(size_t sz) : cow(_cow_create_unboxed(sz)){ - //TODO: Real exception type? + if(UNLIKELY(cow.poisoned)) throw CowException(cow_err()); } Cow::_inner::_inner(cow_t* ptr) : cow(*ptr) { - if(UNLIKELY(cow.poisoned)) throw CowException(cow_err()); free(ptr); + if(UNLIKELY(cow.poisoned)) throw CowException(cow_err()); } Cow::Cow(size_t size) : super(std::make_shared<_inner>(size)){}