diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-04-02 19:27:49 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-04-02 19:27:49 (GMT) |
commit | ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c (patch) | |
tree | 23804fcf753b3487b9a1ea28d4d28b71fa4ae208 /src/marshal.cpp | |
parent | deaa34e0c1d990f37fe00e465ac7a22f705904f0 (diff) | |
download | Doxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.zip Doxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.tar.gz Doxygen-ebf4b3641c9149eaf4468aa8df64e1c7517e5f0c.tar.bz2 |
Release-1.8.3.1-20130402
Diffstat (limited to 'src/marshal.cpp')
-rw-r--r-- | src/marshal.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/marshal.cpp b/src/marshal.cpp index da71843..a6b3e75 100644 --- a/src/marshal.cpp +++ b/src/marshal.cpp @@ -33,6 +33,12 @@ void marshalUInt(StorageIntf *s,uint v) s->write((const char *)b,4); } +void marshalUInt64(StorageIntf *s,uint64 v) +{ + marshalUInt(s, uint(v>>32)); + marshalUInt(s, uint(v&0xFFFFFFFF)); +} + void marshalBool(StorageIntf *s,bool b) { char c = b; @@ -345,7 +351,7 @@ void marshalEntry(StorageIntf *s,Entry *e) marshalInt(s,e->section); marshalInt(s,(int)e->protection); marshalInt(s,(int)e->mtype); - marshalInt(s,e->spec); + marshalUInt64(s,e->spec); marshalInt(s,e->initLines); marshalBool(s,e->stat); marshalBool(s,e->explicitExternal); @@ -426,6 +432,13 @@ uint unmarshalUInt(StorageIntf *s) return result; } +uint64 unmarshalUInt64(StorageIntf *s) +{ + uint64 result=uint64(unmarshalUInt(s))<<32; + result|=unmarshalUInt(s); + return result; +} + bool unmarshalBool(StorageIntf *s) { char result; @@ -719,7 +732,7 @@ Entry * unmarshalEntry(StorageIntf *s) e->section = unmarshalInt(s); e->protection = (Protection)unmarshalInt(s); e->mtype = (MethodTypes)unmarshalInt(s); - e->spec = unmarshalInt(s); + e->spec = unmarshalUInt64(s); e->initLines = unmarshalInt(s); e->stat = unmarshalBool(s); e->explicitExternal = unmarshalBool(s); |