~ubuntu-branches/ubuntu/quantal/unrar-nonfree/quantal

« back to all changes in this revision

Viewing changes to array.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Martin Meredith
  • Date: 2009-06-06 17:46:05 UTC
  • mto: (1.1.11 upstream) (5.1.5 sid)
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20090606174605-825ysfkrhw7wkc9e
ImportĀ upstreamĀ versionĀ 3.9.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
{
8
8
  private:
9
9
    T *Buffer;
10
 
    int BufSize;
11
 
    int AllocSize;
 
10
    size_t BufSize;
 
11
    size_t AllocSize;
12
12
  public:
13
13
    Array();
14
 
    Array(int Size);
 
14
    Array(size_t Size);
15
15
    ~Array();
16
16
    inline void CleanData();
17
 
    inline T& operator [](int Item);
18
 
    inline int Size();
19
 
    void Add(int Items);
20
 
    void Alloc(int Items);
 
17
    inline T& operator [](size_t Item);
 
18
    inline size_t Size();
 
19
    void Add(size_t Items);
 
20
    void Alloc(size_t Items);
21
21
    void Reset();
22
22
    void operator = (Array<T> &Src);
23
23
    void Push(T Item);
38
38
}
39
39
 
40
40
 
41
 
template <class T> Array<T>::Array(int Size)
 
41
template <class T> Array<T>::Array(size_t Size)
42
42
{
43
43
  Buffer=(T *)rarmalloc(sizeof(T)*Size);
44
44
  if (Buffer==NULL && Size!=0)
55
55
}
56
56
 
57
57
 
58
 
template <class T> inline T& Array<T>::operator [](int Item)
 
58
template <class T> inline T& Array<T>::operator [](size_t Item)
59
59
{
60
60
  return(Buffer[Item]);
61
61
}
62
62
 
63
63
 
64
 
template <class T> inline int Array<T>::Size()
 
64
template <class T> inline size_t Array<T>::Size()
65
65
{
66
66
  return(BufSize);
67
67
}
68
68
 
69
69
 
70
 
template <class T> void Array<T>::Add(int Items)
 
70
template <class T> void Array<T>::Add(size_t Items)
71
71
{
72
72
  BufSize+=Items;
73
73
  if (BufSize>AllocSize)
74
74
  {
75
 
    int Suggested=AllocSize+AllocSize/4+32;
76
 
    int NewSize=Max(BufSize,Suggested);
 
75
    size_t Suggested=AllocSize+AllocSize/4+32;
 
76
    size_t NewSize=Max(BufSize,Suggested);
77
77
 
78
78
    Buffer=(T *)rarrealloc(Buffer,NewSize*sizeof(T));
79
79
    if (Buffer==NULL)
83
83
}
84
84
 
85
85
 
86
 
template <class T> void Array<T>::Alloc(int Items)
 
86
template <class T> void Array<T>::Alloc(size_t Items)
87
87
{
88
88
  if (Items>AllocSize)
89
89
    Add(Items-BufSize);