diff options
author | tomas@poseidon.ndb.mysql.com <> | 2005-01-17 12:29:43 +0100 |
---|---|---|
committer | tomas@poseidon.ndb.mysql.com <> | 2005-01-17 12:29:43 +0100 |
commit | beffd06278cbfa9667a6700ef796e7c0deb2dd20 (patch) | |
tree | c85b312d3fd25976f1f5b61491aa247bb161714b | |
parent | b34715555f0f70b04cce3243c32fb4d7eca1b4f3 (diff) | |
download | mariadb-git-beffd06278cbfa9667a6700ef796e7c0deb2dd20.tar.gz |
Bug#7937
-rw-r--r-- | ndb/tools/restore/Restore.hpp | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/ndb/tools/restore/Restore.hpp b/ndb/tools/restore/Restore.hpp index e0b06c1774c..d7f6e3b7799 100644 --- a/ndb/tools/restore/Restore.hpp +++ b/ndb/tools/restore/Restore.hpp @@ -187,28 +187,33 @@ public: }; void update_max_auto_val(const char *data, int size) { - Uint64 val= 0; + union { + Uint8 u8; + Uint16 u16; + Uint32 u32; + } val; + Uint64 v; switch(size){ - case 8: - val= *(Uint8*)data; - break; - case 16: - val= *(Uint16*)data; - break; - case 24: - val= (0xffffff)&*(Uint32*)data; + case 64: + memcpy(&v,data,8); break; case 32: - val= *(Uint32*)data; + memcpy(&val.u32,data,4); + v= val.u32; break; - case 64: - val= *(Uint64*)data; + case 16: + memcpy(&val.u16,data,2); + v= val.u16; + break; + case 8: + memcpy(&val.u8,data,1); + v= val.u8; break; default: return; }; - if(val > m_max_auto_val) - m_max_auto_val= val; + if(v > m_max_auto_val) + m_max_auto_val= v; }; /** * Get attribute descriptor |