summaryrefslogtreecommitdiffabout
path: root/kabc/vcard/VCardEntity.cpp
authorulf69 <ulf69>2004-08-19 23:29:05 (UTC)
committer ulf69 <ulf69>2004-08-19 23:29:05 (UTC)
commitd81fbb0a720ba6eb0fbfa1d1eb0748877237a27e (patch) (side-by-side diff)
tree9b723a5c4f7da306036495e35d1863fbee646984 /kabc/vcard/VCardEntity.cpp
parentd9b7a7296b031b3cf3e510a163367b9c4ab42d7a (diff)
downloadkdepimpi-d81fbb0a720ba6eb0fbfa1d1eb0748877237a27e.zip
kdepimpi-d81fbb0a720ba6eb0fbfa1d1eb0748877237a27e.tar.gz
kdepimpi-d81fbb0a720ba6eb0fbfa1d1eb0748877237a27e.tar.bz2
bugfix: memoryleak in vCards during loading of addressbooks
Diffstat (limited to 'kabc/vcard/VCardEntity.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/vcard/VCardEntity.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/kabc/vcard/VCardEntity.cpp b/kabc/vcard/VCardEntity.cpp
index 0c21e2f..0cd2086 100644
--- a/kabc/vcard/VCardEntity.cpp
+++ b/kabc/vcard/VCardEntity.cpp
@@ -1,11 +1,11 @@
/*
libvcard - vCard parsing library for vCard version 3.0
Copyright (C) 1998 Rik Hemsley rik@kde.org
-
+
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
@@ -28,22 +28,25 @@
using namespace VCARD;
VCardEntity::VCardEntity()
: Entity()
{
+ cardList_.setAutoDelete( TRUE );
}
VCardEntity::VCardEntity(const VCardEntity & x)
: Entity(x)
{
+ cardList_.setAutoDelete( TRUE );
}
VCardEntity::VCardEntity(const QCString & s)
: Entity(s)
{
+ cardList_.setAutoDelete( TRUE );
}
VCardEntity &
VCardEntity::operator = (VCardEntity & x)
{
if (*this == x) return *this;
@@ -72,36 +75,36 @@ VCardEntity::~VCardEntity()
void
VCardEntity::_parse()
{
vDebug("parse");
QCString s(strRep_);
-
+
int i = s.find(QRegExp("BEGIN:VCARD", false));
-
+
while (i != -1) {
-
+
i = s.find(QRegExp("BEGIN:VCARD", false), 11);
-
+
QCString cardStr(s.left(i));
-
+
VCard * v = new VCard(cardStr);
-
+
cardList_.append(v);
-
+
v->parse();
-
+
s.remove(0, i);
}
}
void
VCardEntity::_assemble()
{
VCardListIterator it(cardList_);
-
+
for (; it.current(); ++it)
strRep_ += it.current()->asString() + "\r\n"; // One CRLF for luck.
}
VCardList &
VCardEntity::cardList()