- Timestamp:
- 09/20/08 03:13:11 (2 months ago)
- Location:
- v6/smop
- Files:
-
- 1 added
- 5 modified
-
CMakeLists.txt (modified) (1 diff)
-
include/smop_identifiers.h (modified) (2 diffs)
-
src/idconst_decl_all.h (modified) (1 diff)
-
src/idconst_init_all.c (modified) (2 diffs)
-
src/smop_s1p_array.c (modified) (2 diffs)
-
test/34_array_unshift.m0ld (added)
Legend:
- Unmodified
- Added
- Removed
-
v6/smop/CMakeLists.txt
r22288 r22289 186 186 test/32_array_iterator.m0ld 187 187 test/33_pugs_simple.p6-pugs 188 test/34_array_unshift.m0ld 188 189 ) 189 190 set(c_file) -
v6/smop/include/smop_identifiers.h
r22287 r22289 107 107 extern SMOP__Object* SMOP__ID__REPR_private_storage; /* "^!private_storage" */ 108 108 extern SMOP__Object* SMOP__ID__REPR_properties; /* "^!properties" */ 109 extern SMOP__Object* SMOP__ID__REPR_submethods; /* "^!submethods" */109 extern SMOP__Object* SMOP__ID__REPR_submethods; /* "^!submethods" */ 110 110 extern SMOP__Object* SMOP__ID__REPR_whence; /* "^!whence" */ 111 111 extern SMOP__Object* SMOP__ID__REPR_who; /* "^!who" */ … … 116 116 extern SMOP__Object* SMOP__ID__signature; /* "signature" */ 117 117 extern SMOP__Object* SMOP__ID__STORE; /* "STORE" */ 118 extern SMOP__Object* SMOP__ID__Void; /* "Void" */ 118 extern SMOP__Object* SMOP__ID__unshift; /* "unshift" */ 119 extern SMOP__Object* SMOP__ID__Void; /* "Void" */ 119 120 120 121 #endif -
v6/smop/src/idconst_decl_all.h
r22287 r22289 104 104 SMOP__Object* SMOP__ID__signature; 105 105 SMOP__Object* SMOP__ID__STORE; 106 SMOP__Object* SMOP__ID__unshift; 106 107 SMOP__Object* SMOP__ID__Void; -
v6/smop/src/idconst_init_all.c
r22287 r22289 104 104 SMOP__ID__signature = SMOP__NATIVE__idconst_create_nolist( "signature" ); 105 105 SMOP__ID__STORE = SMOP__NATIVE__idconst_create_nolist( "STORE" ); 106 SMOP__ID__unshift = SMOP__NATIVE__idconst_create_nolist( "unshift" ); 106 107 SMOP__ID__Void = SMOP__NATIVE__idconst_create_nolist( "Void" ); 107 constlist_size = 10 6;108 constlist_size = 107; 108 109 constlist = calloc(constlist_size,sizeof(SMOP__Object*)); 109 110 assert(constlist); … … 213 214 constlist[103] = SMOP__ID__signature; 214 215 constlist[104] = SMOP__ID__STORE; 215 constlist[105] = SMOP__ID__Void; 216 constlist[105] = SMOP__ID__unshift; 217 constlist[106] = SMOP__ID__Void; -
v6/smop/src/smop_s1p_array.c
r22272 r22289 1 1 #include <stdlib.h> 2 #include <string.h> 2 3 #include <smop.h> 3 4 #include <math.h> … … 75 76 ret = SMOP__S1P__Array_Iterator_create(SMOP_REFERENCE(interpreter,(SMOP__Object*)invocant)); 76 77 78 } else if (identifier == SMOP__ID__unshift) { 79 SMOP__Object* value = SMOP__NATIVE__capture_positional(interpreter, capture, 0); 80 if (invocant->size < (invocant->elems + 1)) { 81 resize_array(invocant, invocant->size + 1); 82 } 83 memmove(&invocant->content[1], &invocant->content[0], invocant->elems * sizeof(void*)); 84 invocant->content[0] = value; 85 invocant->elems++; 86 77 87 } else if (identifier == SMOP__ID__elems) { 78 88 ret = SMOP__NATIVE__int_create(invocant->elems); 89 79 90 } else if (identifier == SMOP__ID__DESTROYALL) { 80 91 int i;for (i=0;i < invocant->elems;i++) {
