Skip to content

Commit f59f31e

Browse files
committed
CHANGE: moved some of VECTOR related definitions to sys-value.h so they can be shared with extensions.
1 parent 6624a7e commit f59f31e

File tree

2 files changed

+39
-30
lines changed

2 files changed

+39
-30
lines changed

src/core/t-vector.c

+3-30
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,6 @@
2929

3030
#include "sys-core.h"
3131

32-
#define SET_VECTOR(v,s) VAL_SERIES(v)=(s), VAL_INDEX(v)=0, VAL_SET(v, REB_VECTOR)
33-
34-
// Encoding Format:
35-
// stored in series->size for now
36-
// [d d d d d d d d 0 0 0 0 t s b b]
37-
38-
// Encoding identifiers:
39-
enum {
40-
VTSI08 = 0,
41-
VTSI16,
42-
VTSI32,
43-
VTSI64,
44-
45-
VTUI08,
46-
VTUI16,
47-
VTUI32,
48-
VTUI64,
49-
50-
VTSF08, // not used
51-
VTSF16, // not used
52-
VTSF32,
53-
VTSF64,
54-
};
55-
56-
static REBCNT bit_sizes[4] = { 8, 16, 32, 64 };
57-
58-
#define VECT_TYPE(s) ((s)->size & 0xff)
59-
#define VECT_BIT_SIZE(bits) (bit_sizes[bits & 3])
60-
6132
REBU64 f_to_u64(float n) {
6233
union {
6334
REBU64 u;
@@ -342,13 +313,15 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk)
342313
** sign: signed or unsigned
343314
** dims: number of dimensions
344315
** bits: number of bits per unit (8, 16, 32, 64)
345-
** size: size of array ?
316+
** size: number of values
346317
**
347318
***********************************************************************/
348319
{
349320
REBCNT len;
350321
REBSER *ser;
351322

323+
//printf("MAKE_VECTOR=> type: %i sign: %i dims: %i bits: %i size: %i\n", type, sign, dims, bits, size);
324+
352325
len = size * dims;
353326
if (len > 0x7fffffff) return 0;
354327
ser = Make_Series(len+1, bits/8, TRUE); // !!! can width help extend the len?

src/include/sys-value.h

+36
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,42 @@ typedef struct rebol_xy_int {
326326
(((c)&0xff)<<16)|(((w)&0xff)<<24))))
327327
#endif
328328

329+
/***********************************************************************
330+
**
331+
** VECTOR
332+
**
333+
***********************************************************************/
334+
335+
#define SET_VECTOR(v,s) VAL_SERIES(v)=(s), VAL_INDEX(v)=0, VAL_SET(v, REB_VECTOR)
336+
337+
// Encoding Format:
338+
// stored in series->size for now
339+
// [d d d d d d d d 0 0 0 0 t s b b]
340+
341+
// Encoding identifiers:
342+
enum {
343+
VTSI08 = 0,
344+
VTSI16,
345+
VTSI32,
346+
VTSI64,
347+
348+
VTUI08,
349+
VTUI16,
350+
VTUI32,
351+
VTUI64,
352+
353+
VTSF08, // not used
354+
VTSF16, // not used
355+
VTSF32,
356+
VTSF64,
357+
};
358+
359+
static REBCNT bit_sizes[4] = { 8, 16, 32, 64 };
360+
361+
#define VECT_TYPE(s) ((s)->size & 0xff)
362+
#define VECT_BIT_SIZE(bits) (bit_sizes[bits & 3])
363+
364+
329365

330366
/***********************************************************************
331367
**

0 commit comments

Comments
 (0)