Status of KDEsupport
Adriaan de Groot <[email protected]>
| Newsgroups | gmane.comp.kde.solaris |
|---|---|
| Message-ID | <[email protected]> |
OK, after dropping all optimization flags from Qt in CVSDude I have a working
Qt 4.1.3 -- on the todo list is figuring out what went wrong with the other
flags, since yuri has pretty much the same flags and a non-broken Qt. As of
just now, kdesupport compiles out of KDE SVN:
At revision 711625.
Well, almost. There are two patches needed. Find them attached. The one deals
with stdcxx's map implementation which is different from GCC's; incomplete
types may not be used in maps. The other adds stdcxx to the libraries linked
by the C bindings for taglib. Neither are in KDE SVN; the latter seems a bit
dorky and the former needs maintainer approval, since it's a serious change.
--
These are your friends - Adem
GPG: FEA2 A3FE Adriaan de Groot
___________________________________________________
This message is from the kde-solaris mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde-solaris.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.
strigi.diff
(text/x-diff, 3.9 KB)
Index: strigi/src/streams/archivereader.cpp
===================================================================
--- strigi/src/streams/archivereader.cpp (revision 711535)
+++ strigi/src/streams/archivereader.cpp (working copy)
@@ -56,6 +56,9 @@
*/
class ArchiveEntryCache {
public:
+ class SubEntry;
+ typedef std::map<std::string, SubEntry *> SubEntryMap;
+
/**
* @brief Represents an entry in the cache.
*/
@@ -65,7 +68,7 @@
EntryInfo entry;
/** A list of subentries of this entry. */
//can't define staticly constructed object while object is being defined
- std::map<std::string, SubEntry> entries;
+ SubEntryMap entries;
/**
* @brief The number of entries in the cache below and including
* this one.
@@ -76,7 +79,7 @@
/** Constructor */
SubEntry() { }
/** Destructor */
- virtual ~SubEntry() {}
+ virtual ~SubEntry();
};
/**
* @brief Represents a top-level entry in the cache
@@ -130,14 +133,23 @@
void print() const;
};
+ArchiveEntryCache::SubEntry::~SubEntry() {
+ SubEntryMap::iterator i;
+ for (i=entries.begin(); i!=entries.end(); ++i) {
+ delete i->second;
+ }
+ // Probably superfluous
+ entries.clear();
+}
+
void
ArchiveEntryCache::print() const {
std::map<std::string, RootSubEntry>::const_iterator j;
for (j=cache.begin(); j!=cache.end(); ++j) {
printf("x %s\n", j->first.c_str());
- std::map<std::string, SubEntry>::const_iterator i;
+ SubEntryMap::const_iterator i;
for (i = j->second.entries.begin(); i != j->second.entries.end(); ++i) {
- printf("- %s ", i->second.entry.filename.c_str());
+ printf("- %s ", i->second->entry.filename.c_str());
}
printf("\n");
}
@@ -145,9 +157,9 @@
int32_t
ArchiveEntryCache::SubEntry::count() const {
int32_t count = 1;
- map<string, SubEntry>::const_iterator i;
+ SubEntryMap::const_iterator i;
for (i = entries.begin(); i != entries.end(); ++i) {
- count += i->second.count();
+ count += i->second->count();
}
return count;
}
@@ -179,7 +191,7 @@
}
const SubEntry* e = &ei->second;
- map<string, SubEntry>::const_iterator i;
+ SubEntryMap::const_iterator i;
size_t p = ei->first.length();
do {
@@ -194,7 +206,7 @@
if (i == e->entries.end()) {
e = 0;
} else {
- e = &i->second;
+ e = i->second;
p = np;
}
if (p == url.length()) {
@@ -268,19 +280,19 @@
se.entry.filename = name;
// find the right entry
- map<string, ArchiveEntryCache::SubEntry>::iterator ii;
+ ArchiveEntryCache::SubEntryMap::iterator ii;
ArchiveEntryCache::SubEntry* parent = &e;
for (uint i=0; i<names.size(); ++i) {
ii = parent->entries.find(names[i]);
if (ii == parent->entries.end()) {
- ArchiveEntryCache::SubEntry newse;
- newse.entry.filename = names[i];
- newse.entry.type = EntryInfo::Dir;
- newse.entry.size = 0;
+ ArchiveEntryCache::SubEntry *newse = new ArchiveEntryCache::SubEntry;
+ newse->entry.filename = names[i];
+ newse->entry.type = EntryInfo::Dir;
+ newse->entry.size = 0;
parent->entries[names[i]] = newse;
ii = parent->entries.find(names[i]);
}
- parent = &ii->second;
+ parent = ii->second;
}
*parent = se;
}
@@ -602,9 +614,9 @@
}
if (subentry) {
- map<string, ArchiveEntryCache::SubEntry>::const_iterator i;
+ ArchiveEntryCache::SubEntryMap::const_iterator i;
for (i = subentry->entries.begin(); i != subentry->entries.end(); ++i) {
- v.push_back(i->second.entry);
+ v.push_back(i->second->entry);
}
}
DirLister dl(v);
taglib.diff
(text/x-diff, 525 B)
Index: taglib/bindings/c/CMakeLists.txt =================================================================== --- taglib/bindings/c/CMakeLists.txt (revision 711098) +++ taglib/bindings/c/CMakeLists.txt (working copy) @@ -33,7 +33,7 @@ # stlport4 and stdcxx -- make this a mess. We really only # support stdcxx, but won't force the issue here. # - TARGET_LINK_LIBRARIES(tag_c Crun) + TARGET_LINK_LIBRARIES(tag_c stdcxx Crun) ENDIF(HAVE_CRUN_LIB) SET_TARGET_PROPERTIES(tag_c PROPERTIES VERSION 0.0.0 SOVERSION 0 )
signature.asc
(application/pgp-signature, 187 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQBG5+pOdqzuAf6io/4RAlsGAJ9HZkZX48KAAZbP4Xc85HHW8kiZLACfQqLE buVksoRLhv3VOohCqFUxq8E= =5cCD -----END PGP SIGNATURE-----