From f5e364523169daaef7b78f5edd21a2f2323e246c Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 17:14:24 +0700 Subject: [PATCH 1/7] THRIFT-3253 Replace deprecated Duration.fracSec with Duration.total --- lib/d/src/thrift/async/libevent.d | 2 +- lib/d/src/thrift/transport/file.d | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/d/src/thrift/async/libevent.d b/lib/d/src/thrift/async/libevent.d index 967c41fa0ef..8dfc1fb475b 100644 --- a/lib/d/src/thrift/async/libevent.d +++ b/lib/d/src/thrift/async/libevent.d @@ -443,7 +443,7 @@ private: private { timeval toTimeval(const(Duration) dur) { timeval tv = {tv_sec: cast(int)dur.total!"seconds"(), - tv_usec: dur.fracSec.usecs}; + tv_usec: dur.total!"usecs"}; return tv; } diff --git a/lib/d/src/thrift/transport/file.d b/lib/d/src/thrift/transport/file.d index cb8bcd75ff8..04d34ac8535 100644 --- a/lib/d/src/thrift/transport/file.d +++ b/lib/d/src/thrift/transport/file.d @@ -847,7 +847,7 @@ private { (immutable(ubyte)[] data) { while (errorOpening) { logError("Writer thread going to sleep for %s µs due to IO errors", - ioErrorSleepDuration.fracSec.usecs); + ioErrorSleepDuration.total!"usecs"); // Sleep for ioErrorSleepDuration, being ready to be interrupted // by shutdown requests. From 5693dedc1389c580f0869f1b2007809afc5cc6a5 Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 18:25:48 +0700 Subject: [PATCH 2/7] THRIFT-3253 Replace deprecated object.clear with object.destroy. --- lib/d/src/thrift/async/libevent.d | 4 ++-- lib/d/src/thrift/internal/ssl.d | 2 +- lib/d/src/thrift/protocol/json.d | 2 +- lib/d/src/thrift/transport/ssl.d | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/d/src/thrift/async/libevent.d b/lib/d/src/thrift/async/libevent.d index 8dfc1fb475b..2cf0d3ca537 100644 --- a/lib/d/src/thrift/async/libevent.d +++ b/lib/d/src/thrift/async/libevent.d @@ -392,7 +392,7 @@ private: TAsyncEventReason.NORMAL; (*(cast(TSocketEventListener*)arg))(reason); GC.removeRange(arg); - clear(arg); + destroy(arg); free(arg); } @@ -402,7 +402,7 @@ private: assert(flags & EV_TIMEOUT); (*(cast(void delegate()*)arg))(); GC.removeRange(arg); - clear(arg); + destroy(arg); free(arg); } diff --git a/lib/d/src/thrift/internal/ssl.d b/lib/d/src/thrift/internal/ssl.d index 63a0a2b3bc4..3af54b5825d 100644 --- a/lib/d/src/thrift/internal/ssl.d +++ b/lib/d/src/thrift/internal/ssl.d @@ -179,7 +179,7 @@ Exception getSSLException(string location = null, string clientFile = __FILE__, Exception exception; void initMessage() { - message.clear(); + message.destroy(); hadMessage = false; if (!location.empty) { message ~= location; diff --git a/lib/d/src/thrift/protocol/json.d b/lib/d/src/thrift/protocol/json.d index e89aee14e75..ed8f9c0b9c2 100644 --- a/lib/d/src/thrift/protocol/json.d +++ b/lib/d/src/thrift/protocol/json.d @@ -61,7 +61,7 @@ final class TJsonProtocol(Transport = TTransport) if ( } void reset() { - contextStack_.clear(); + destroy(contextStack_); context_ = new Context(); reader_ = new LookaheadReader(trans_); } diff --git a/lib/d/src/thrift/transport/ssl.d b/lib/d/src/thrift/transport/ssl.d index c1eab25dc78..a78a2edbc6a 100644 --- a/lib/d/src/thrift/transport/ssl.d +++ b/lib/d/src/thrift/transport/ssl.d @@ -518,7 +518,7 @@ private: const(char)* file, int line) { GC.removeRange(l); - clear(cast(Mutex)l); + destroy(cast(Mutex)l); free(l); } From 379bac8229b156df184bf77656f2afc80e298fde Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 19:46:49 +0700 Subject: [PATCH 3/7] THRIFT-3253 Use tupleof for retrieving all fields in the class and its base class instead of FieldNames template --- lib/d/src/thrift/codegen/base.d | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/d/src/thrift/codegen/base.d b/lib/d/src/thrift/codegen/base.d index 9061d0bf310..b328d508f6a 100644 --- a/lib/d/src/thrift/codegen/base.d +++ b/lib/d/src/thrift/codegen/base.d @@ -469,8 +469,8 @@ mixin template TStructHelpers(alias fieldMetaData = cast(TFieldMeta[])null) if ( private size_t thriftToHashImpl() const @trusted nothrow { size_t hash = 0; - foreach (name; FieldNames!This) { - auto val = mixin("this." ~ name); + foreach (i, _; this.tupleof) { + auto val = this.tupleof[i]; hash += typeid(val).getHash(&val); } return hash; From 78f494f35e3a8bad7941e5947025d932352b5a68 Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 19:55:18 +0700 Subject: [PATCH 4/7] THRIFT-3253 Import missing hashset module --- lib/d/src/thrift/codegen/base.d | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/d/src/thrift/codegen/base.d b/lib/d/src/thrift/codegen/base.d index b328d508f6a..632707ab411 100644 --- a/lib/d/src/thrift/codegen/base.d +++ b/lib/d/src/thrift/codegen/base.d @@ -48,6 +48,7 @@ import std.traits : BaseTypeTuple, isPointer, isSomeFunction, PointerTarget, import thrift.base; import thrift.internal.codegen; import thrift.protocol.base; +import thrift.util.hashset; /* * Thrift struct/service meta data, which is used to store information from From bbb7b44ff7a1743a98d02c4cc143e2e4ffbe3a0b Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 20:00:31 +0700 Subject: [PATCH 5/7] THRIFT-3253 Add missing testBool method --- lib/d/test/thrift_test_server.d | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/d/test/thrift_test_server.d b/lib/d/test/thrift_test_server.d index 1608a57c58c..b55b7fc9e07 100644 --- a/lib/d/test/thrift_test_server.d +++ b/lib/d/test/thrift_test_server.d @@ -86,6 +86,11 @@ class TestHandler : ThriftTest { return thing; } + override bool testBool(bool thing) { + if (trace_) writefln("testBool(\"%s\")", thing); + return thing; + } + override Xtruct testStruct(ref const(Xtruct) thing) { if (trace_) writefln("testStruct({\"%s\", %s, %s, %s})", thing.string_thing, thing.byte_thing, thing.i32_thing, thing.i64_thing); From b59f43267b854be340d45d91b0be78d048356d72 Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 20:14:31 +0700 Subject: [PATCH 6/7] THRIFT-3253 Replace deprecated object.clear with object.destroy --- lib/d/test/async_test.d | 2 +- lib/d/test/transport_test.d | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/d/test/async_test.d b/lib/d/test/async_test.d index f1a0cf31521..fb765ad6e8e 100644 --- a/lib/d/test/async_test.d +++ b/lib/d/test/async_test.d @@ -130,7 +130,7 @@ void main(string[] args) { } auto managers = new TLibeventAsyncManager[managerCount]; - scope (exit) foreach (ref m; managers) clear(m); + scope (exit) foreach (ref m; managers) destroy(m); auto clientsThreads = new ThreadGroup; foreach (managerIndex, ref manager; managers) { diff --git a/lib/d/test/transport_test.d b/lib/d/test/transport_test.d index 09bf6fd6804..623e03f0e4d 100644 --- a/lib/d/test/transport_test.d +++ b/lib/d/test/transport_test.d @@ -144,7 +144,7 @@ class CoupledWrapperTransports(WrapperTransport, InnerCoupledTransports) if ( } ~this() { - clear(inner_); + destroy(inner_); } private: From e98f4a2f328ecc9e1abb681357afe728c9866e2c Mon Sep 17 00:00:00 2001 From: Phongphan Phuttha Date: Thu, 8 Oct 2015 20:15:10 +0700 Subject: [PATCH 7/7] THRIFT-3253 Explicitly override toHash method to suppress the implicit overriding deprecation warning --- lib/d/src/thrift/codegen/base.d | 2 +- lib/d/test/async_test_runner.sh | 0 lib/d/test/thrift_test_runner.sh | 0 3 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 lib/d/test/async_test_runner.sh mode change 100644 => 100755 lib/d/test/thrift_test_runner.sh diff --git a/lib/d/src/thrift/codegen/base.d b/lib/d/src/thrift/codegen/base.d index 632707ab411..0e943352daf 100644 --- a/lib/d/src/thrift/codegen/base.d +++ b/lib/d/src/thrift/codegen/base.d @@ -421,7 +421,7 @@ mixin template TStructHelpers(alias fieldMetaData = cast(TFieldMeta[])null) if ( return (cast()super).opEquals(other); } - size_t toHash() const { + override size_t toHash() const { return thriftToHashImpl(); } } else { diff --git a/lib/d/test/async_test_runner.sh b/lib/d/test/async_test_runner.sh old mode 100644 new mode 100755 diff --git a/lib/d/test/thrift_test_runner.sh b/lib/d/test/thrift_test_runner.sh old mode 100644 new mode 100755