test/binding: inherit QueryPool from NonDispHandle

This also assumes VkQueryPool does not require any VkDeviceMemory.
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 856beba..32a8e44 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -639,16 +639,17 @@
     EXPECT(vkResetEvent(device(), handle()) == VK_SUCCESS);
 }
 
+NON_DISPATCHABLE_HANDLE_DTOR(QueryPool, vkDestroyObject, VK_OBJECT_TYPE_QUERY_POOL)
+
 void QueryPool::init(const Device &dev, const VkQueryPoolCreateInfo &info)
 {
-    DERIVED_OBJECT_TYPE_INIT(vkCreateQueryPool, dev, VK_OBJECT_TYPE_QUERY_POOL, &info);
-    alloc_memory();
+    NON_DISPATCHABLE_HANDLE_INIT(vkCreateQueryPool, dev, &info);
 }
 
 VkResult QueryPool::results(uint32_t start, uint32_t count, size_t size, void *data)
 {
     size_t tmp = size;
-    VkResult err = vkGetQueryPoolResults(dev_->handle(), obj(), start, count, &tmp, data, 0);
+    VkResult err = vkGetQueryPoolResults(device(), handle(), start, count, &tmp, data, 0);
     if (err == VK_SUCCESS) {
         if (!EXPECT(tmp == size))
             memset(data, 0, size);
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 7c9d233..25268fb 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -398,8 +398,10 @@
     static VkEventCreateInfo create_info(VkFlags flags);
 };
 
-class QueryPool : public DerivedObject<VkQueryPool, Object, VK_OBJECT_TYPE_QUERY_POOL> {
+class QueryPool : public internal::NonDispHandle<VkQueryPool> {
 public:
+    ~QueryPool();
+
     // vkCreateQueryPool()
     void init(const Device &dev, const VkQueryPoolCreateInfo &info);