ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/dynbuf.C
(Generate patch)

Comparing deliantra/server/server/dynbuf.C (file contents):
Revision 1.22 by root, Mon Sep 8 11:27:25 2008 UTC vs.
Revision 1.23 by root, Thu Sep 11 21:36:07 2008 UTC

24#include <cstdio> 24#include <cstdio>
25 25
26void 26void
27dynbuf::init (int initial) 27dynbuf::init (int initial)
28{ 28{
29 cextend = extend;
29 _size = 0; 30 _size = 0;
30 31
31 first = last = (chunk *)salloc<char> (sizeof (chunk) + initial); 32 first = last = (chunk *)salloc<char> (sizeof (chunk) + initial);
32 first->alloc = sizeof (chunk) + initial; 33 first->alloc = sizeof (chunk) + initial;
33 first->next = 0; 34 first->next = 0;
50} 51}
51 52
52void 53void
53dynbuf::clear () 54dynbuf::clear ()
54{ 55{
56 cextend = extend;
55 free (first->next); 57 free (first->next);
56 58
57 _size = 0; 59 _size = 0;
58 ptr = first->data; 60 ptr = first->data;
59 end = ptr + first->alloc - sizeof (chunk); 61 end = ptr + first->alloc - sizeof (chunk);
72{ 74{
73 finalise (); 75 finalise ();
74 76
75 do 77 do
76 { 78 {
77 extend += extend >> 1; 79 cextend += cextend >> 1;
78 extend = (extend + 15) & ~15; 80 cextend = (cextend + 15) & ~15;
79 } 81 }
80 while (extend < size); 82 while (cextend < size);
81 83
82 chunk *add = (chunk *) salloc<char> (sizeof (chunk) + extend); 84 chunk *add = (chunk *) salloc<char> (sizeof (chunk) + cextend);
83 add->alloc = sizeof (chunk) + extend; 85 add->alloc = sizeof (chunk) + cextend;
84 add->next = 0; 86 add->next = 0;
85 87
86 last->next = add; 88 last->next = add;
87 last = add; 89 last = add;
88 90
89 ptr = last->data; 91 ptr = last->data;
90 end = ptr + extend; 92 end = ptr + cextend;
91} 93}
92 94
93void 95void
94dynbuf::linearise (void *data) 96dynbuf::linearise (void *data)
95{ 97{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines