Bug 14084 - Improve type safety and remove polymorphism
diff --git a/icd/common/icd-instance.c b/icd/common/icd-instance.c
index a4cb5fe..ae3b298 100644
--- a/icd/common/icd-instance.c
+++ b/icd/common/icd-instance.c
@@ -139,7 +139,7 @@
logger->user_data = (void *) user_data;
- *msg_obj = (VkDbgMsgCallback) logger;
+ *( struct icd_instance_logger **)msg_obj = logger;
return VK_SUCCESS;
}
@@ -149,10 +149,11 @@
const VkDbgMsgCallback msg_obj)
{
struct icd_instance_logger *logger, *prev;
+ VkDbgMsgCallback local_msg_obj = msg_obj;
for (prev = NULL, logger = instance->loggers; logger;
prev = logger, logger = logger->next) {
- if (logger == (struct icd_instance_logger *) msg_obj)
+ if (logger == *(struct icd_instance_logger **) &local_msg_obj)
break;
}
@@ -171,8 +172,8 @@
void icd_instance_log(const struct icd_instance *instance,
VkFlags msg_flags,
- VkObjectType obj_type,
- VkObject src_object,
+ VkDbgObjectType obj_type,
+ uint64_t src_object,
size_t location, int32_t msg_code,
const char *msg)
{