Mercurial > sdl-ios-xcode
comparison src/main/symbian/EKA2/vectorbuffer.cpp @ 3975:e85e65aec22f SDL-1.2
Added S60 port.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 24 Jun 2007 18:26:35 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
3974:42578e98a295 | 3975:e85e65aec22f |
---|---|
1 /* | |
2 vectorbuffer.cpp | |
3 yet another circle buffer | |
4 | |
5 Markus Mertama | |
6 */ | |
7 | |
8 #include"vectorbuffer.h" | |
9 | |
10 | |
11 | |
12 void VectorPanic(TInt aErr, TInt aLine) | |
13 { | |
14 TBuf<64> b; | |
15 b.Format(_L("vector buffer at % d "), aLine); | |
16 User::Panic(b, aErr); | |
17 } | |
18 | |
19 void TNodeBuffer::TNode::Terminator(TNodeBuffer::TNode* aNode) | |
20 { | |
21 Mem::Copy(iSucc, &aNode, sizeof(TNode*)); | |
22 } | |
23 | |
24 TInt TNodeBuffer::TNode::Size() const | |
25 { | |
26 return reinterpret_cast<const TUint8*>(iSucc) - Ptr(); | |
27 } | |
28 | |
29 const TUint8* TNodeBuffer::TNode::Ptr() const | |
30 { | |
31 return reinterpret_cast<const TUint8*>(this) + sizeof(TNode); | |
32 } | |
33 | |
34 TNodeBuffer::TNode* TNodeBuffer::TNode::Empty(TUint8* aBuffer) | |
35 { | |
36 TNode* node = reinterpret_cast<TNode*>(aBuffer); | |
37 node->iSucc = node + 1; | |
38 return node; | |
39 } | |
40 | |
41 TNodeBuffer::TNode* TNodeBuffer::TNode::New(TNode* aPred, const TDesC8& aData) | |
42 { | |
43 TNode* node = aPred->Size() == 0 ? aPred : aPred->iSucc; | |
44 | |
45 | |
46 TUint8* start = reinterpret_cast<TUint8*>(node) + sizeof(TNode); | |
47 node->iSucc = reinterpret_cast<TNode*>(start + aData.Size()); | |
48 node->iSucc->iSucc = NULL; //terminator | |
49 | |
50 __ASSERT_DEBUG(node->Size() == aData.Size(), VECPANIC(KErrCorrupt)); | |
51 | |
52 Mem::Copy(start, aData.Ptr(), aData.Size()); | |
53 return node; | |
54 } | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 |