--- parser3/src/classes/math.C 2003/03/05 13:13:46 1.24.2.12 +++ parser3/src/classes/math.C 2003/03/18 16:00:06 1.24.2.12.2.2 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_MATH_C="$Date: 2003/03/05 13:13:46 $"; +static const char* IDENT_MATH_C="$Date: 2003/03/18 16:00:06 $"; #include "pa_vmethod_frame.h" @@ -52,8 +52,7 @@ static unsigned int randomizer=0; static inline int _random(uint top) { return (int)(((double)((randomizer=rand())% RAND_MAX)) / RAND_MAX * top ); } -static void _random(Request& r, StringPtr method_name, MethodParams* params) { - Pool& pool=r.pool(); +static void _random(Request& r, const String& method_name, MethodParams* params) { ValuePtr range=params->as_junction(0, "range must be expression"); double top=r.process_to_value(range)->as_double(); @@ -72,7 +71,7 @@ static double degrees(double param) { re static double radians(double param) { return param /180 *PI; } static void math1(Request& r, - StringPtr method_name, MethodParams* params, + const String& method_name, MethodParams* params, math1_func_ptr func) { ValuePtr param=params->as_junction(0, "parameter must be expression"); @@ -81,11 +80,11 @@ static void math1(Request& r, } #define MATH1(name) \ - static void _##name(Request& r, StringPtr method_name, MethodParams* params) {\ + static void _##name(Request& r, const String& method_name, MethodParams* params) {\ math1(r, method_name, params, &name);\ } #define MATH1P(name_parser, name_c) \ - static void _##name_parser(Request& r, StringPtr method_name, MethodParams* params) {\ + static void _##name_parser(Request& r, const String& method_name, MethodParams* params) {\ math1(r, method_name, params, &name_c);\ } MATH1(round); MATH1(floor); MATH1P(ceiling, ceil); @@ -101,7 +100,7 @@ MATH1(sqrt); typedef double (*math2_func_ptr)(double, double); static void math2(Request& r, - StringPtr method_name, MethodParams* params, + const String& method_name, MethodParams* params, math2_func_ptr func) { ValuePtr a=params->as_junction(0, "parameter must be expression"); ValuePtr b=params->as_junction(1, "parameter must be expression"); @@ -113,7 +112,7 @@ static void math2(Request& r, } #define MATH2(name) \ - static void _##name(Request& r, StringPtr method_name, MethodParams* params) {\ + static void _##name(Request& r, const String& method_name, MethodParams* params) {\ math2(r, method_name, params, &name);\ } MATH2(pow); @@ -133,10 +132,9 @@ static size_t calc_prefix_size(const cha } else return 0; } -static void _crypt(Request& r, StringPtr method_name, MethodParams* params) { - Pool& pool=r.pool(); - CharPtr password=params->as_string(0, "password must be string")->cstr(); - CharPtr maybe_bodyless_salt=params->as_string(1, "salt must be string")->cstr(); +static void _crypt(Request& r, const String& method_name, MethodParams* params) { + const char* password=params->as_string(0, "password must be string")->cstr(); + const char* maybe_bodyless_salt=params->as_string(1, "salt must be string")->cstr(); size_t prefix_size=calc_prefix_size(maybe_bodyless_salt); const char* normal_salt; @@ -158,7 +156,7 @@ static void _crypt(Request& r, StringPtr */ if(strncmp(normal_salt, PA_MD5PW_ID, PA_MD5PW_IDLEN) == 0) { const size_t sample_size=120; - char *sample_buf=new(pool) char[sample_size]; + char *sample_buf=new char[sample_size]; pa_MD5Encode((const unsigned char *)password.get(), (const unsigned char *)normal_salt, sample_buf, sample_size); String sample(sample_buf);