diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/gtk-webcore/osb-nrcore-0.5.0 | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/gtk-webcore/osb-nrcore-0.5.0')
-rw-r--r-- | recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch | 375 |
1 files changed, 375 insertions, 0 deletions
diff --git a/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch b/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch new file mode 100644 index 0000000000..8f43d00a38 --- /dev/null +++ b/recipes/gtk-webcore/osb-nrcore-0.5.0/KWQDictImpl.patch @@ -0,0 +1,375 @@ +Index: NRCore/kwiq/KWQDictImpl.cpp +=================================================================== +--- NRCore/kwiq/KWQDictImpl.cpp 2004/10/18 18:39:48 1.3 ++++ NRCore/kwiq/KWQDictImpl.cpp 2004/10/25 10:08:30 +@@ -30,26 +30,90 @@ + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ ++#include <string.h> + + #include "KWQDictImpl.h" ++#include "KWQAssertions.h" ++#include "KWQMap.h" + #include <CoreFoundation/CoreFoundation.h> ++ ++typedef void (* DeleteFunction) (void *); ++ ++class KWQDictPrivate ++{ ++public: ++ KWQDictPrivate(int size, bool caseSensitive, DeleteFunction); ++ KWQDictPrivate(const KWQDictPrivate &dp); ++ ~KWQDictPrivate(); ++ ++ QMap<QString,void*> map; ++ DeleteFunction deleteFunc; ++ bool modifyCase; ++ KWQDictIteratorPrivate *iterators; ++}; ++ ++class KWQDictIteratorPrivate ++{ ++public: ++ KWQDictIteratorPrivate(KWQDictPrivate *); ++ ~KWQDictIteratorPrivate(); ++ ++ void remove(const QString &key); ++ void dictDestroyed(); ++ ++ uint count; ++ uint pos; ++ QString **keys; ++ void **values; ++ KWQDictPrivate *dict; ++ KWQDictIteratorPrivate *next; ++ KWQDictIteratorPrivate *prev; ++}; ++ ++KWQDictPrivate::KWQDictPrivate(int size, bool caseSensitive, ++ DeleteFunction _deleteFunc) ++ : deleteFunc(_deleteFunc), ++ modifyCase(!caseSensitive), ++ iterators(0) ++{ ++} ++ ++KWQDictPrivate::KWQDictPrivate(const KWQDictPrivate &dp) ++ : map(dp.map), ++ deleteFunc(dp.deleteFunc), ++ modifyCase(dp.modifyCase), ++ iterators(0) ++{ ++} ++ ++KWQDictPrivate::~KWQDictPrivate() ++{ ++ for (KWQDictIteratorPrivate *it = iterators; it; it = it->next) { ++ it->dictDestroyed(); ++ } ++} ++ ++ + /* + * No KWQDictImpl::~KWQDictImpl() because QDict::~QDict calls KWQDictImpl::clear() + * on + */ + KWQDictImpl::KWQDictImpl(int size, bool caseSensitive, void (*deleteFunc_)(void *)) +- : deleteFunc(deleteFunc_) +- , modifyCase(!caseSensitive) ++ : d(new KWQDictPrivate(size, caseSensitive, deleteFunc_)) + { ++} + ++KWQDictImpl::~KWQDictImpl() ++{ ++ delete d; + } + + void KWQDictImpl::insert(const QString &key, const void *value) + { +- if (modifyCase) +- map.insert(key.lower(), const_cast<void*>(value)); ++ if (d->modifyCase) ++ d->map.insert(key.lower(), const_cast<void*>(value)); + else +- map.insert(key, const_cast<void*>(value) ); ++ d->map.insert(key, const_cast<void*>(value) ); + } + + bool KWQDictImpl::remove(const QString &key, bool deleteItem) +@@ -57,21 +121,26 @@ + QMapIterator<QString, void*> i; + void* data; + +- if (modifyCase) +- i = map.find(key.lower()); ++ if (d->modifyCase) ++ i = d->map.find(key.lower()); + else +- i = map.find(key); ++ i = d->map.find(key); + +- if (i == map.end()) ++ if (i == d->map.end()) + return false; + + data = *i; + +- map.remove(i); +- if (deleteItem && deleteFunc) { +- deleteFunc(data); ++ d->map.remove(i); ++ if (deleteItem && d->deleteFunc) { ++ d->deleteFunc(data); + return true; + } ++ ++ for (KWQDictIteratorPrivate *it = d->iterators; it; it = it->next) { ++ it->remove(key); ++ } ++ + return false; + } + +@@ -79,71 +148,159 @@ + { + if (deleteItem) + { +- QMapIterator<QString,void*> i = map.begin(); +- QMapIterator<QString,void*> end = map.end(); ++ QMapIterator<QString,void*> i = d->map.begin(); ++ QMapIterator<QString,void*> end = d->map.end(); + void *data; + while (i!=end) + { + data=*i; +- if (deleteFunc) deleteFunc(data); ++ if (d->deleteFunc) d->deleteFunc(data); + ++i; + } + } + +- map.clear(); ++ d->map.clear(); + } + + uint KWQDictImpl::count() const + { +- return map.count(); ++ return d->map.count(); + } + + void *KWQDictImpl::find(const QString &key) const + { + QMapConstIterator<QString,void*> i; +- if (modifyCase) +- i = map.find(key.lower()); ++ if (d->modifyCase) ++ i = d->map.find(key.lower()); + else +- i = map.find(key); ++ i = d->map.find(key); + +- if (i == map.end()) ++ if (i == d->map.end()) + return 0; + return *i; + } + ++void KWQDictImpl::swap(KWQDictImpl &di) ++{ ++ KWQDictPrivate *tmp; ++ ++ tmp = di.d; ++ di.d = d; ++ d = tmp; ++} ++ ++KWQDictImpl &KWQDictImpl::assign(const KWQDictImpl &di, bool deleteItems) ++{ ++ KWQDictImpl tmp(di); ++ ++ if (deleteItems) { ++ clear(true); ++ } ++ ++ swap(tmp); ++ ++ return *this; ++} ++ ++ ++KWQDictIteratorImpl::KWQDictIteratorImpl(const KWQDictImpl &di) ++ : d(new KWQDictIteratorPrivate(di.d)) ++{ ++} ++ + uint KWQDictIteratorImpl::count() const + { +- return dict->map.count(); ++ return d->count; + } + + void* KWQDictIteratorImpl::current() const + { +- if (i == dict->map.end()) +- return 0; +- return *i; ++ if (d->pos >= d->count) { ++ return NULL; ++ } ++ return d->values[d->pos]; + } + + void* KWQDictIteratorImpl::toFirst() + { +- i=dict->map.begin(); +- if (i == dict->map.end()) +- return 0; +- +- return *i; ++ d->pos = 0; ++ return current(); + } ++ + void* KWQDictIteratorImpl::operator++() + { +- ++i; +- if (i==dict->map.end()) +- return 0; +- return *i; ++ ++d->pos; ++ return current(); + } + + QString KWQDictIteratorImpl::currentStringKey() const ++{ ++ if (d->pos >= d->count) { ++ return QString(); ++ } ++ return QString(*d->keys[d->pos]); ++} ++ ++ ++KWQDictIteratorPrivate::KWQDictIteratorPrivate(KWQDictPrivate *d) : ++ count(d->map.count()), ++ pos(0), ++ keys(new QString * [count]), ++ values(new void * [count]), ++ dict(d), ++ next(d->iterators), ++ prev(0) ++{ ++ d->iterators = this; ++ if (next) { ++ next->prev = this; ++ } ++ ++ unsigned int i = 0; ++ QMap<QString,void*>::Iterator it = d->map.begin(); ++ QMap<QString,void*>::Iterator end = d->map.end(); ++ while (it != end) { ++ keys[i] = new QString(it.key()); ++ values[i] = it.data(); ++ ++i; ++ ++it; ++ } ++ ASSERT(i==count); ++} ++ ++KWQDictIteratorPrivate::~KWQDictIteratorPrivate() + { +- if (i == dict->map.end() ) +- return QString(); ++ if (prev) { ++ prev->next = next; ++ } else if (dict) { ++ dict->iterators = next; ++ } ++ if (next) { ++ next->prev = prev; ++ } ++ ++ delete [] keys; ++ delete [] values; ++} + +- return QString(i.key()); ++void KWQDictIteratorPrivate::remove(const QString &key) ++{ ++ for (uint i = 0; i < count; ) { ++ if (*keys[i] != key) { ++ ++i; ++ } else { ++ --count; ++ if (pos > i) { ++ --pos; ++ } ++ memmove(&keys[i], &keys[i+1], sizeof(keys[i]) * (count - i)); ++ memmove(&values[i], &values[i+1], sizeof(values[i]) * (count - i)); ++ } ++ } + } + ++void KWQDictIteratorPrivate::dictDestroyed() ++{ ++ count = 0; ++ dict = 0; ++} +Index: NRCore/kwiq/KWQDictImpl.h +=================================================================== +--- NRCore/kwiq/KWQDictImpl.h 2004/09/23 08:27:53 1.1.1.1 ++++ NRCore/kwiq/KWQDictImpl.h 2004/10/25 10:08:30 +@@ -29,36 +29,42 @@ + #include "KWQMap.h" + #include "KWQString.h" + ++class KWQDictPrivate; ++class KWQDictIteratorPrivate; ++ + class KWQDictImpl { + public: + KWQDictImpl(int size, bool caseSensitive, void (*deleteFunc)(void *)); ++ ~KWQDictImpl(); + void insert(const QString &key, const void *value); + bool remove(const QString &key, bool deleteItems); + + void *find(const QString &key) const; + void clear(bool deleteItem); + uint count() const; +- private: +- void (*deleteFunc)(void*); +- QMap<QString,void*> map; +- bool modifyCase; ++ ++ KWQDictImpl &assign(const KWQDictImpl &pdi, bool deleteItems); ++private: ++ void swap(KWQDictImpl &di); ++ KWQDictPrivate *d; + friend class KWQDictIteratorImpl; + }; + + class KWQDictIteratorImpl { +- const KWQDictImpl *dict; +- QMapConstIterator<QString,void*> i; + public: +- KWQDictIteratorImpl(const KWQDictImpl &di) :dict(&di), i(di.map.begin()) { } ++ KWQDictIteratorImpl(const KWQDictImpl &di); + uint count() const ; + void *current() const; ++ ++ void* toFirst(); + +- void* toFirst(); +- + void *operator++(); + + + QString currentStringKey() const; ++private: ++ KWQDictIteratorPrivate *d; ++ + }; + + #endif |