--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/h263decoder/src/epoclib.cpp Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,245 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description:
+* Wrappers for Symbian OS -specific system functions.
+*
+*/
+
+
+#include <e32base.h>
+#include <s32file.h>
+#include "epoclib.h"
+
+#define NAMELEN 120
+#define EL_EXPORT
+
+
+EL_EXPORT void free(TAny *ptr)
+
+ {
+#ifdef MALLOC_DEBUG
+ if ( !ptr )
+ return;
+
+ unsigned *p32 = (unsigned*) (((unsigned) ptr) - (NAMELEN+8));
+
+ if ( p32[0] != 0xdaded1d0 )
+ User::Panic(_L("BadFree"), 1);
+
+ ptr = (TAny*) p32;
+#endif
+
+ // Dangling pointer check
+ unsigned count = (unsigned) User::AllocLen(ptr);
+ TUint8 *p;
+
+ p = (TUint8*) ptr;
+ while ( count >> 2 )
+ {
+ *((TUint32*)p) = 0xfeedf1d0;
+ p += 4;
+ count -= 4;
+ }
+ while ( count )
+ {
+ *(p++) = 0x17;
+ count--;
+ }
+
+ User::Free(ptr);
+ }
+
+#ifdef MALLOC_DEBUG
+EL_EXPORT TAny *debugMalloc(u_int32 size, char *file, int line)
+#else
+EL_EXPORT TAny *malloc(u_int32 size)
+#endif
+ {
+ // Uninit checks
+ TAny *ptr;
+ unsigned count = size;
+ TUint8 *p;
+
+#ifdef MALLOC_DEBUG
+ ptr = User::Alloc(size + NAMELEN+8);
+ if ( !ptr )
+ return 0;
+ p = ((TUint8*) ptr) + NAMELEN+8;
+#else
+ ptr = User::Alloc(size);
+ if ( !ptr )
+ return 0;
+ p = (TUint8*) ptr;
+#endif
+
+ while ( count >> 2 )
+ {
+ *((TUint32*)p) = 0xdeadbeef;
+ p += 4;
+ count -= 4;
+ }
+ while ( count )
+ {
+ *(p++) = 0x42;
+ count--;
+ }
+
+#ifdef MALLOC_DEBUG
+ unsigned *p32 = (unsigned*) ptr;
+ p32[0] = 0xdaded1d0;
+ p32[1] = (unsigned) line;
+ char *c = (char*) &p32[2];
+ int n = NAMELEN;
+ while ( (*file != 0) && n )
+ {
+ *(c++) = *(file++);
+ n--;
+ }
+ return (TAny*) (((unsigned) p32) + NAMELEN + 8);
+#else
+ return ptr;
+#endif
+ }
+
+EL_EXPORT TAny *realloc(void *memblock, u_int32 size)
+ {
+ // realloc not used at least currently, skip the debug-branch
+ return User::ReAlloc(memblock, size);
+ }
+
+
+#ifdef MALLOC_DEBUG
+EL_EXPORT TAny *debugCalloc(u_int32 num, u_int32 size, char *file, int line)
+{
+ TAny *ptr;
+ TUint8 *p;
+
+ ptr = User::Alloc(num*size + NAMELEN+8);
+ if ( !ptr )
+ return 0;
+ p = ((TUint8*) ptr) + NAMELEN+8;
+
+ Mem::Fill(p, size*num, 0);
+
+ unsigned *p32 = (unsigned*) ptr;
+ p32[0] = 0xdaded1d0;
+ p32[1] = (unsigned) line;
+ char *c = (char*) &p32[2];
+ int n = NAMELEN;
+ while ( (*file != 0) && n )
+ {
+ *(c++) = *(file++);
+ n--;
+ }
+ return (TAny*) p;
+}
+#else
+EL_EXPORT TAny *calloc(u_int32 num, u_int32 size)
+
+ {
+ TAny *dest = User::Alloc(size*num);
+ Mem::Fill(dest, size*num, 0);
+ return dest;
+ }
+#endif
+
+EL_EXPORT TAny *memset(TAny *dest, TInt c, TInt size)
+ {
+ Mem::Fill(dest, size, c);
+ return dest; //returning the value of dest as in windows
+ }
+EL_EXPORT TAny *memcpy(TAny *dest, const TAny *src, TInt size)
+ {
+ Mem::Copy(dest, src, size);
+ return dest;
+ }
+
+EL_EXPORT TAny *memmove(TAny *dest, const TAny *src, u_int32 count)
+ {
+ Mem::Copy(dest,src,count);
+ return dest;
+ }
+
+long atol(
+ const char *nptr
+ )
+{
+ int c; // current char
+ long total; // current total
+ int sign; // if '-', then negative, otherwise positive
+
+ TLex8 string((unsigned char *)nptr);
+ // skip whitespace
+ string.SkipSpace();
+
+ //prendre un caratere dans string lui faire le sign
+ c = (int)string.Peek();
+ string.Inc();
+
+ sign = c; // save sign indication
+ if (c == '-' || c == '+')
+ // skip sign
+ {c = (int)string.Peek();
+ string.Inc();
+ }
+ else //If c is not a sign, it is necessary to go increment back into the descriptors to get the right
+ //number
+ {
+ string.UnGet();
+ }
+
+ total = 0;
+
+ while (string.Peek().IsDigit())
+ {
+ total = 10 * total + (c - '0');
+ string.Inc();
+ c = (int)string.Peek();
+
+ }
+
+ if (sign == '-')
+ return -total;
+ else
+ return total; /* return result, negated if necessary */
+}
+
+
+/*
+*int atoi(char *nptr) - Convert string to long
+*
+*Purpose:
+* Converts ASCII string pointed to by nptr to binary.
+* Overflow is not detected. Because of this, we can just use
+* atol().
+*
+*Entry:
+* nptr = ptr to string to convert
+*
+*Exit:
+* return int value of the string
+*
+*Exceptions:
+* None - overflow is not detected.
+*
+*******************************************************************************/
+
+EL_EXPORT int atoi(
+ const char *nptr
+ )
+{
+ return (int)atol(nptr);
+}
+// End of File