🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309627

Podwójne usunięcie globalnego obiektu - dlaczego?!?

#309627
From: szykcech
Date: Sat, 27 Jan 2018 18:48
36 lines
2939 bytes
Witam
System Kubuntu 17.10 g++ v7.2 (z Qt v5.9.4 ale to nie ma tu chyba znaczenia). Mam program i bibliotekę (*.so) z której on korzysta. Program i biblioteka korzystają z biblioteki linkowanej statycznie. Ta statyczna biblioteka zawiera taką klasę:
class RemoveTags
{
public:
    RemoveTags();
    ~RemoveTags();
    void operator()(QString& aText, QString aReplaceWith = "");

protected:
   QRegExp mReTag;
};
extern RemoveTags gRemoveTags;

RemoveTags::RemoveTags inicjalizuje wyrażenie regularne.
RemoveTags::~RemoveTags nic nie robi - tam tylko ustawiałem pułapkę debugera.

Wszystko działa jak należy do momentu gdy zamykam program mam taki komunikat:
*** Error in `/home/szyk/!-pro/x-test/build-DoubleDeletegRemoveTags-Qt_5_9_4_g_7_2-Debug/DoubleDeletegRemoveTags': double free or corruption (!prev): 0x000055e89618db00 ***
The program has unexpectedly finished.

Moje pytanie jest takie: Czy to normalne?!? Bo ja podejrzewałbym, że program ma swoją kopię RemoveTags i biblioteka swoją i usuwają ją oddzielnie.
Czy może tak powinno być i program zwyczajnie nie rozróżnia biblioteki statycznej włączanej do exe i so?

Jak obejść ten problem?
Bo mi się wydaje, że najprościej było by stworzyć bibliotekę współdzieloną z RemoveTags i jej używać w pozostałych miejscach. Z drugiej strony nie chciałbym tworzyć zbyt wielu bibliotek współdzielonych w których prawie nic nie ma... Jest jakiś inny sposób?!?

dzięki i pozdro
Szyk Cech
--
http://szyk.jcom.pl/
http://szyk.free.of.pl/
http://szykcech.cba.pl/
http://szyk.000webhostapp.com/
http://www.geocities.ws/szyk/
http://szyk.wex.pl/
Technical Details
Message-ID: <553c2505-830f-4763-8a19-ea6d31dc4c85@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!s47no2129619qta.0!news-out.google.com!e39ni681qtk.1!nntp.google.com!i22no2131395qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 10.200.112.94 with SMTP id y30mr13385687qtm.0.1517078937519;        Sat, 27 Jan 2018 10:48:57 -0800 (PST)
X-Received: by 10.31.178.206 with SMTP id b197mr1899136vkf.11.1517078937228; Sat, 27 Jan 2018 10:48:57 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!s47no2129619qta.0!news-out.google.com!e39ni681qtk.1!nntp.google.com!i22no2131395qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Sat, 27 Jan 2018 10:48:57 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=188.146.107.120; posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
NNTP-Posting-Host: 188.146.107.120
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <553c2505-830f-4763-8a19-ea6d31dc4c85@googlegroups.com>
Subject: Podwójne usunięcie globalnego obiektu -
 dlaczego?!?
From: szykcech@gmail.com
Injection-Date: Sat, 27 Jan 2018 18:48:57 +0000
X-Received-Body-CRC: 919245794
X-Received-Bytes: 3086
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit