summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsagitario <sagitario@fc51e93f-b9fe-4711-8d8d-3ae870c5f7d8>2010-06-14 17:56:16 (GMT)
committersagitario <sagitario@fc51e93f-b9fe-4711-8d8d-3ae870c5f7d8>2010-06-14 17:56:16 (GMT)
commit33e49f0ed70a8277e0b14365c823accb9c29f120 (patch)
tree546ab88e9c008184b9ded63d9a0caa1ecf0efad6 /src
parent259c6e72e8ed783d224648e9d0012adb6398e5b0 (diff)
downloadcv2pdb-33e49f0ed70a8277e0b14365c823accb9c29f120.zip
cv2pdb-33e49f0ed70a8277e0b14365c823accb9c29f120.tar.gz
cv2pdb-33e49f0ed70a8277e0b14365c823accb9c29f120.tar.bz2
when a dynamic array type is detected for a DMC compiled executable (command option -C is used), it is converted to int64 (fixing DMC bug)
Diffstat (limited to 'src')
-rw-r--r--src/cv2pdb.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/cv2pdb.cpp b/src/cv2pdb.cpp
index a934d2f..937a397 100644
--- a/src/cv2pdb.cpp
+++ b/src/cv2pdb.cpp
@@ -1776,8 +1776,18 @@ bool CV2PDB::initGlobalTypes()
if (oem->common.oemid == 0x42 && oem->common.id == 1)
{
- const char* name = appendDynamicArray(oem->d_dyn_array.index_type, oem->d_dyn_array.elem_type);
- len = addClass(dtype, 0, 0, kIncomplete, 0, 0, 0, name);
+ if(Dversion == 0) // in dmc, this is used for (u)int64
+ {
+ dtype->modifier_v2.id = LF_MODIFIER_V2;
+ dtype->modifier_v2.attribute = 0;
+ dtype->modifier_v2.type = 0x13;
+ len = sizeof(dtype->modifier_v2);
+ }
+ else
+ {
+ const char* name = appendDynamicArray(oem->d_dyn_array.index_type, oem->d_dyn_array.elem_type);
+ len = addClass(dtype, 0, 0, kIncomplete, 0, 0, 0, name);
+ }
}
else if (oem->common.oemid == 0x42 && oem->common.id == 3)
{