From efe1dd9bf92efbf6ab74f7323c39348b5efae4ce Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Fri, 18 May 2012 10:18:17 +0200 Subject: filemap: Correct wrong signed 32/64 conversions The 32-bit network-order conversion used a long internally. Fixed. Signed-off-by: Henrik Rydberg --- src/hdb/filemap.cc | 4 ++-- src/hdb/filemap.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/hdb/filemap.cc b/src/hdb/filemap.cc index b40644f..35cff60 100644 --- a/src/hdb/filemap.cc +++ b/src/hdb/filemap.cc @@ -280,9 +280,9 @@ void filemap::lock() { if(hd) { MLOCK(mutex); - if((volatile long&)hd->lock) { + if((volatile unsigned int&)hd->lock) { time_t end=time(0)+TIMEOUT; - while((volatile long&)hd->lock&&time(0)lock&&time(0)lock.set(1); } diff --git a/src/hdb/filemap.h b/src/hdb/filemap.h index d6af7eb..dd58c42 100644 --- a/src/hdb/filemap.h +++ b/src/hdb/filemap.h @@ -49,7 +49,7 @@ public: void add(int h) { n=htonl(ntohl(n)+h); } int get() const { return ntohl(n); } private: - long n; + unsigned int n; }; ////////////////////////////////////////////////////// -- cgit v1.2.3