--- parser3/src/classes/array.C 2024/09/10 20:48:15 1.2 +++ parser3/src/classes/array.C 2024/09/16 23:22:52 1.4 @@ -17,7 +17,7 @@ #include "pa_vbool.h" #include "pa_vmethod_frame.h" -volatile const char * IDENT_ARRAY_C="$Id: array.C,v 1.2 2024/09/10 20:48:15 moko Exp $"; +volatile const char * IDENT_ARRAY_C="$Id: array.C,v 1.4 2024/09/16 23:22:52 moko Exp $"; // class @@ -41,7 +41,7 @@ static void _create_or_add(Request& r, M VArray& self=GET_SELF(r, VArray); ArrayValue& self_array=self.array(); - if(VArray* src=static_cast(vsrc.as(VARRAY_TYPE))) { + if(VArray* src=dynamic_cast(&vsrc)) { ArrayValue& src_array =src->array(); if(&src_array==&self_array) // same: doing nothing return; @@ -51,7 +51,7 @@ static void _create_or_add(Request& r, M for(HashStringValue::Iterator i(*src_hash); i; i.next()) self_array+=i.value(); } - self.clear_hash(); + self.invalidate(); } } @@ -89,7 +89,7 @@ static void _keys(Request& r, MethodPara } static void _count(Request& r, MethodParams&) { - r.write(*new VInt(GET_SELF(r, VArray).count())); + r.write(*new VInt(GET_SELF(r, VArray).array().used())); } static void _append(Request& r, MethodParams& params) { @@ -101,7 +101,7 @@ static void _append(Request& r, MethodPa for(int i=0; i