Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37838622
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: libbytesize

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: except_in_del.patch
Скачать


From 66851cc2630f7089d2de2bba054418cfd16563ad Mon Sep 17 00:00:00 2001
From: Vratislav Podzimek <vpodzime@redhat.com>
Date: Thu, 15 Sep 2016 10:56:36 +0200
Subject: [PATCH] Prevent ignored exceptions in __del__ from happening
For some reason we cannot call the functions from the loaded libbytesize C
library in some cases when __del__ is called. Let's just prevent the ignored
exceptions from happening.
Resolves: gh#19
Signed-off-by: Vratislav Podzimek <vpodzime@redhat.com>
---
 src/python/bytesize.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/python/bytesize.py b/src/python/bytesize.py
index ec4b279..b68c5c4 100644
--- a/src/python/bytesize.py
+++ b/src/python/bytesize.py
@@ -97,7 +97,11 @@ class SizeStruct(ctypes.Structure):
         return c_bytesize.bs_size_new_from_size(sz).contents
 
     def __del__(self):
-        c_bytesize.bs_size_free(self)
+        # XXX: For some reason c_bytesize may be None here (probably when python
+        #      cleans up after itself) and loading it again doesn't work at that
+        #      stage. Let's just prevent ignored exceptions from happening.
+        if c_bytesize:
+            c_bytesize.bs_size_free(self)
 
     def get_bytes(self):
         sgn = ctypes.c_int(0)
-- 
2.7.4
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin