|
|
| version 1.59, 2003/01/21 15:51:14 | version 1.59.2.3, 2003/01/31 12:34:37 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: pool class. | Parser: pool class. |
| Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) | Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) |
| Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) | Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) |
| */ | */ |
| Line 11 static const char* IDENT_POOL_C="$Date$" | Line 11 static const char* IDENT_POOL_C="$Date$" |
| #include "pa_exception.h" | #include "pa_exception.h" |
| #include "pa_common.h" | #include "pa_common.h" |
| #include "pa_sapi.h" | #include "pa_sapi.h" |
| #include "pa_charset.h" | #include "pa_value_includes.h" |
| static void *fail_alloc(char *what, size_t size) { | |
| SAPI::die("out of memory: failed to %s %u bytes", | |
| what, size); | |
| // never reached | |
| return 0; | |
| } | |
| void *pa_malloc(size_t size) { | |
| if(void *result=malloc(size)) | |
| return result; | |
| return fail_alloc("allocate", size); | |
| } | |
| void *pa_calloc(size_t size) { | |
| if(void *result=calloc(1, size)) | |
| return result; | |
| return fail_alloc("allocate", size); | |
| } | |
| void pa_free(void *ptr) { | |
| free(ptr); | |
| } | |
| void *pa_realloc(void *ptr, size_t size) { | |
| if(void *result=realloc(ptr, size)) | |
| return result; | |
| return fail_alloc("reallocate to", size); | |
| } | |
| /* | |
| Pool::Pool(void *astorage) : | Pool::Pool(void *astorage) : |
| fstorage(astorage), fcontext(0), | fstorage(astorage), fcontext(0), |
| ftotal_allocated(0), ftotal_times(0), | ftotal_allocated(0), ftotal_times(0), |
| Line 29 void *Pool::copy(const void *buf, const | Line 62 void *Pool::copy(const void *buf, const |
| return result; | return result; |
| } | } |
| char *Pool::copy(const char *cstr) { | char *Pool::copy(const char* cstr) { |
| if(cstr) { | if(cstr) { |
| size_t size=strlen(cstr)+1; | size_t size=strlen(cstr)+1; |
| return (char *)copy(cstr, size); | return (char *)copy(cstr, size); |
| Line 73 Charset& Pool::get_client_charset() { | Line 106 Charset& Pool::get_client_charset() { |
| #ifdef XML | #ifdef XML |
| const char *Pool::transcode_cstr(xmlChar *s) { | const char* Pool::transcode_cstr(xmlChar *s) { |
| return get_source_charset().transcode_cstr(s); | return get_source_charset().transcode_cstr(s); |
| } | } |
| Line 85 String& Pool::transcode(xmlChar *s | Line 118 String& Pool::transcode(xmlChar *s |
| return get_source_charset().transcode(s, origin); | return get_source_charset().transcode(s, origin); |
| } | } |
| const char *Pool::transcode_cstr(GdomeDOMString *s) { | const char* Pool::transcode_cstr(GdomeDOMString *s) { |
| return get_source_charset().transcode_cstr(s); | return get_source_charset().transcode_cstr(s); |
| } | } |
| Line 97 String& Pool::transcode(GdomeDOMString * | Line 130 String& Pool::transcode(GdomeDOMString * |
| return get_source_charset().transcode(s, origin); | return get_source_charset().transcode(s, origin); |
| } | } |
| xmlChar *Pool::transcode_buf2xchar(const char *buf, size_t buf_size) { | xmlChar *Pool::transcode_buf2xchar(const char* buf, size_t buf_size) { |
| return get_source_charset().transcode_buf2xchar(buf, buf_size); | return get_source_charset().transcode_buf2xchar(buf, buf_size); |
| } | } |
| Line 105 GdomeDOMString_auto_ptr Pool::transcode( | Line 138 GdomeDOMString_auto_ptr Pool::transcode( |
| return get_source_charset().transcode(s); | return get_source_charset().transcode(s); |
| } | } |
| #endif | #endif |
| */ |