Merge branch 'master' of github.com:KLayout/klayout into byte-arrays

This commit is contained in:
Matthias Koefferlein 2021-01-24 23:52:56 +01:00
commit 199602424a
5 changed files with 28 additions and 5 deletions

View File

@ -33,16 +33,16 @@ namespace db
{
static tl::Mutex s_map_mutex;
static std::map<std::string, tl::weak_collection<ColdProxy> > s_proxies_per_library_name;
static std::map<std::string, tl::weak_collection<ColdProxy> *> s_proxies_per_library_name;
const tl::weak_collection<ColdProxy> &
ColdProxy::cold_proxies_per_lib_name (const std::string &libname)
{
tl::MutexLocker locker (&s_map_mutex);
std::map<std::string, tl::weak_collection<ColdProxy> >::const_iterator i = s_proxies_per_library_name.find (libname);
std::map<std::string, tl::weak_collection<ColdProxy> *>::const_iterator i = s_proxies_per_library_name.find (libname);
if (i != s_proxies_per_library_name.end ()) {
return i->second;
return *i->second;
} else {
static tl::weak_collection<ColdProxy> s_empty;
return s_empty;
@ -54,7 +54,11 @@ ColdProxy::ColdProxy (db::cell_index_type ci, db::Layout &layout, const ProxyCon
{
if (! info.lib_name.empty ()) {
tl::MutexLocker locker (&s_map_mutex);
s_proxies_per_library_name [info.lib_name].push_back (this);
std::map<std::string, tl::weak_collection<ColdProxy> *>::iterator i = s_proxies_per_library_name.find (info.lib_name);
if (i != s_proxies_per_library_name.end ()) {
i = s_proxies_per_library_name.insert (std::make_pair (info.lib_name, new tl::weak_collection<ColdProxy> ())).first;
}
i->second->push_back (this);
}
}

View File

@ -30,6 +30,7 @@
#include "dbCell.h"
#include "tlObject.h"
#include "tlTypeTraits.h"
namespace db
{
@ -102,10 +103,23 @@ public:
private:
ProxyContextInfo *mp_context_info;
ColdProxy (const ColdProxy &d);
ColdProxy &operator= (const ColdProxy &d);
};
}
namespace tl
{
template <>
struct type_traits<db::ColdProxy> : public type_traits<void>
{
typedef tl::false_tag has_default_constructor;
typedef tl::false_tag has_copy_constructor;
};
}
#endif

View File

@ -44,7 +44,6 @@
#include "pyaRefs.h"
#include "dbPolygon.h"
static PyObject *BridgeError;
static PyObject *

View File

@ -88,10 +88,14 @@ LIBS += -L$$LIBDIR -lklayout_db
-Wno-deprecated-declarations \
-Wno-reserved-user-defined-literal \
# because we use unordered_map/unordered_set:
QMAKE_CXXFLAGS += -std=c++0x
# Python is somewhat sloppy and relies on the compiler initializing fields
# of strucs to 0:
QMAKE_CXXFLAGS_WARN_ON += \
-Wno-missing-field-initializers
} else {
# disable some warnings

View File

@ -342,10 +342,12 @@ InputHttpStreamPrivateData::finished (QNetworkReply *reply)
}
if (tl::verbosity() >= 40) {
#if QT_VERSION >= 0x40800
const QList<QNetworkReply::RawHeaderPair> &raw_headers = reply->rawHeaderPairs ();
for (QList<QNetworkReply::RawHeaderPair>::const_iterator h = raw_headers.begin (); h != raw_headers.end (); ++h) {
tl::info << "HTTP response header: " << h->first.constData () << ": " << h->second.constData ();
}
#endif
}
QVariant redirect_target = reply->attribute (QNetworkRequest::RedirectionTargetAttribute);