sourcepawn/decompiler/platform_util.cpp
author David Anderson <dvander@alliedmods.net>
Sat Sep 27 15:34:59 2008 -0500 (2008-09-27)
changeset 2325 7a24ee5557fb
parent 2320 88550c031d23
permissions -rw-r--r--
Fixed building on GCC and some valgrind warnings. Read .dbg.natives table now.
     1 #include <new>
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 #include "platform_util.h"
     5 
     6 size_t Sp_Format(char *buffer, size_t maxlength, const char *fmt, ...)
     7 {
     8 	size_t len;
     9 
    10 	va_list ap;
    11 	va_start(ap, fmt);
    12 	len = Sp_FormatArgs(buffer, maxlength, fmt, ap);
    13 	va_end(ap);
    14 
    15 	return len;
    16 }
    17 
    18 size_t Sp_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list ap)
    19 {
    20 	size_t len;
    21 
    22 	len = vsnprintf(buffer, maxlength, fmt, ap);
    23 
    24 	if (len >= maxlength)
    25 	{
    26 		buffer[maxlength - 1] = '\0';
    27 		return (maxlength - 1);
    28 	}
    29 	else
    30 	{
    31 		return len;
    32 	}
    33 }
    34 
    35 /* Overload a few things to prevent libstdc++ linking */
    36 #if defined __linux__
    37 extern "C" void __cxa_pure_virtual(void)
    38 {
    39 }
    40 
    41 void *operator new(size_t size)
    42 {
    43 	return malloc(size);
    44 }
    45 
    46 void *operator new[](size_t size) 
    47 {
    48 	return malloc(size);
    49 }
    50 
    51 void operator delete(void *ptr) 
    52 {
    53 	free(ptr);
    54 }
    55 
    56 void operator delete[](void * ptr)
    57 {
    58 	free(ptr);
    59 }
    60 #endif