AHB: minor clean up to avoid build failures on different platforms

Bug: b/158094132
Test: comment out AHB def and test on Android.
Change-Id: Ibae7f50a861d1009be3eaa11067783bacacdee54
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50548
Tested-by: Yiwei Zhang <zzyiwei@google.com>
Presubmit-Ready: Yiwei Zhang <zzyiwei@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Trevor Black <vantablack@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Vulkan/VkDeviceMemory.cpp b/src/Vulkan/VkDeviceMemory.cpp
index c84eb38..85e7806 100644
--- a/src/Vulkan/VkDeviceMemory.cpp
+++ b/src/Vulkan/VkDeviceMemory.cpp
@@ -14,6 +14,7 @@
 
 #include "VkDeviceMemory.hpp"
 #include "VkBuffer.hpp"
+#include "VkDevice.hpp"
 #include "VkDeviceMemoryExternalBase.hpp"
 #include "VkImage.hpp"
 
@@ -360,7 +361,11 @@
 #if SWIFTSHADER_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER
 VkResult DeviceMemory::exportAndroidHardwareBuffer(struct AHardwareBuffer **pAhb) const
 {
-	return external->exportAndroidHardwareBuffer(pAhb);
+	if(external->getFlagBit() != VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
+	{
+		return VK_ERROR_OUT_OF_HOST_MEMORY;
+	}
+	return static_cast<AHardwareBufferExternalMemory *>(external)->exportAndroidHardwareBuffer(pAhb);
 }
 
 VkResult DeviceMemory::GetAndroidHardwareBufferProperties(VkDevice &ahbDevice, const struct AHardwareBuffer *buffer, VkAndroidHardwareBufferPropertiesANDROID *pProperties)
diff --git a/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp b/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
index 7842a4c..2e73240 100644
--- a/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
+++ b/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
@@ -59,10 +59,9 @@
 
 	VkExternalMemoryHandleTypeFlagBits getFlagBit() const override { return typeFlagBit; }
 
-	VkResult exportAndroidHardwareBuffer(AHardwareBuffer **pAhb) const override;
+	VkResult exportAndroidHardwareBuffer(AHardwareBuffer **pAhb) const;
 
 	void setDevicePtr(vk::Device *pDevice) override { device = pDevice; }
-	bool isAndroidHardwareBuffer() override { return true; }
 
 	static VkResult GetAndroidHardwareBufferFormatProperties(const AHardwareBuffer_Desc &ahbDesc, VkAndroidHardwareBufferFormatPropertiesANDROID *pFormat);
 	static VkResult GetAndroidHardwareBufferProperties(VkDevice &device, const AHardwareBuffer *buffer, VkAndroidHardwareBufferPropertiesANDROID *pProperties);
diff --git a/src/Vulkan/VkDeviceMemoryExternalBase.hpp b/src/Vulkan/VkDeviceMemoryExternalBase.hpp
index 1eb4a6a..451ba3d 100644
--- a/src/Vulkan/VkDeviceMemoryExternalBase.hpp
+++ b/src/Vulkan/VkDeviceMemoryExternalBase.hpp
@@ -45,18 +45,6 @@
 	}
 #endif
 
-#if SWIFTSHADER_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER
-	virtual VkResult exportAndroidHardwareBuffer(struct AHardwareBuffer **pAhb) const
-	{
-		return VK_ERROR_INVALID_EXTERNAL_HANDLE;
-	}
-
-	virtual bool isAndroidHardwareBuffer()
-	{
-		return false;
-	}
-#endif
-
 	// Some external device memories, such as Android hardware buffers, represent
 	// specific images with requirements.
 	virtual bool hasExternalImageProperties() const { return false; }