[Liblas-commits] hg: 2 new changesets
liblas-commits at liblas.org
liblas-commits at liblas.org
Thu Jul 29 12:48:46 EDT 2010
changeset 23bc1a506f0a in /Volumes/Data/www/liblas.org/hg
details: http://hg.liblas.orghg?cmd=changeset;node=23bc1a506f0a
summary: Removed sharedptr.hpp - replaced by boost::shared_ptr
changeset 52f24e850b32 in /Volumes/Data/www/liblas.org/hg
details: http://hg.liblas.orghg?cmd=changeset;node=52f24e850b32
summary: merged
diffstat:
include/liblas/detail/sharedptr.hpp | 132 ------------------------------------
python/tests/File.txt | 11 ++-
src/detail/reader/header.cpp | 2 +-
3 files changed, 11 insertions(+), 134 deletions(-)
diffs (181 lines):
diff -r fe4def923c79 -r 52f24e850b32 include/liblas/detail/sharedptr.hpp
--- a/include/liblas/detail/sharedptr.hpp Thu Jul 29 17:32:03 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/******************************************************************************
- * $Id$
- *
- * Project: libLAS - http://liblas.org - A BSD library for LAS format data.
- * Purpose: Shared pointer implementation for C++ libLAS
- * Author: Mateusz Loskot, mateusz at loskot.net
- *
- ******************************************************************************
- * The SharedPtr class is based on implementation of CountedPtr
- * from the book "The C++ Standard Library - A Tutorial and Reference"
- *
- * (C) Copyright Nicolai M. Josuttis 1999
- * (C) Copyright Mateusz Loskot 2008, mateusz at loskot.net (modifications)
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following
- * conditions are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of the Martin Isenburg or Iowa Department
- * of Natural Resources nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- ****************************************************************************/
-
-#ifndef LIBLAS_DETAIL_SHAREDPTR_HPP_INCLUDED
-#define LIBLAS_DETAIL_SHAREDPTR_HPP_INCLUDED
-#include <cassert>
-
-namespace liblas { namespace detail {
-
-template <class T>
-class SharedPtr
-{
-public:
-
- // Initialize pointer with existing pointer, where pointer p
- // is required to be a return value of new operator
- // TODO: Relax the "0 != p requirement"
- // m_count(new long(p ? 1 : 0))
- explicit SharedPtr(T* p = 0)
- : m_ptr(p), m_count(new long(1))
- {}
-
- // Copy pointer (one more owner)
- SharedPtr(SharedPtr<T> const& other) throw()
- : m_ptr(other.m_ptr), m_count(other.m_count)
- {
- ++*m_count;
- }
-
- // Destructor (delete value if this was the last owner)
- ~SharedPtr() throw()
- {
- dispose();
- }
-
- // Assignment operator (unshare old and share new value)
- SharedPtr<T>& operator=(SharedPtr<T> const& rhs) throw()
- {
- if (&rhs != this)
- {
- dispose();
- m_ptr = rhs.m_ptr;
- m_count = rhs.m_count;
- ++*m_count;
- }
- return *this;
- }
-
- T& operator*() const throw()
- {
- assert(0 != m_ptr);
- return *m_ptr;
- }
-
- T* operator->() const throw()
- {
- assert(0 != m_ptr);
- return m_ptr;
- }
-
- T* get() const
- {
- return m_ptr;
- }
-
- long use_count() const
- {
- return (*m_count);
- }
-
-private:
-
- T* m_ptr;
- long* m_count; // shared number of owners
-
- void dispose()
- {
-
- if (--*m_count == 0)
- {
- delete m_count;
- delete m_ptr;
- }
- }
-
-};
-
-}} // namespace liblas::detail
-
-#endif // LIBLAS_DETAIL_SHAREDPTR_HPP_INCLUDED
diff -r fe4def923c79 -r 52f24e850b32 python/tests/File.txt
--- a/python/tests/File.txt Thu Jul 29 17:32:03 2010 +0100
+++ b/python/tests/File.txt Thu Jul 29 17:52:24 2010 +0100
@@ -49,11 +49,20 @@
>>> f.close()
>>> f.open()
+
+Test Reading different locations and proper internal overwriting of the file
+
>>> f2 = file.File('../test/data/TO_core_last_clip.las')
>>> p2 = f2.read(6)
>>> p2.x, p2.y, p2.z
(630320.95999999996, 4834500.0, 55.009999999999998)
+ >>> p2 == f2.read(3)
+ False
+ >>> p2.x == f2.read(6).x
+ True
+
+
>>> f2.close()
>>> del f2
@@ -305,7 +314,7 @@
>>> h6.data_record_length
52
-
+
f.size - f.base_size will be 16 bytes of space (h6.data_record_length - 34 bytes for point format 3)
>>> import ctypes
diff -r fe4def923c79 -r 52f24e850b32 src/detail/reader/header.cpp
--- a/src/detail/reader/header.cpp Thu Jul 29 17:32:03 2010 +0100
+++ b/src/detail/reader/header.cpp Thu Jul 29 17:52:24 2010 +0100
@@ -210,7 +210,7 @@
{
m_header->SetPointRecordsByReturnCount(i, point_counts[i]);
}
- delete point_counts;
+ delete[] point_counts;
// 21-23. Scale factors
read_n(x1, m_ifs, sizeof(x1));
More information about the Liblas-commits
mailing list