Array3d.cpp
Upload User: hcfgz168
Upload Date: 2011-09-11
Package Size: 116k
Code Size: 1k
Category:

OpenGL program

Development Platform:

WINDOWS

  1. //********************************************
  2. // Array3d.h
  3. //********************************************
  4. // class CArray3d
  5. //********************************************
  6. // pierre.alliez@cnet.francetelecom.fr
  7. // Created : 30/01/98
  8. // Modified : 11/03/98
  9. //********************************************
  10. #include "stdafx.h"
  11. #include "Array3d.h"
  12. //********************************************
  13. // FreeExtra
  14. //********************************************
  15. template<class T>
  16. void CArray3d<T>::FreeExtra()
  17. {
  18. if (m_nSize != m_nMaxSize)
  19. {
  20. // shrink to desired size
  21. #ifdef SIZE_T_MAX
  22. ASSERT(m_nSize <= SIZE_T_MAX/sizeof(T*));
  23. #endif
  24. T** pNewData = NULL;
  25. if (m_nSize != 0)
  26. {
  27. pNewData = (T**) new BYTE[m_nSize * sizeof(T*)];
  28. // copy new data from old
  29. memcpy(pNewData, m_pData, m_nSize * sizeof(T*));
  30. }
  31. // get rid of old stuff (note: no destructors called)
  32. delete[] (BYTE*)m_pData;
  33. m_pData = pNewData;
  34. m_nMaxSize = m_nSize;
  35. }
  36. }
  37.   
  38. //** EOF **