@@ -330,6 +330,7 @@ typedef struct Reb_Tuple {
330
330
REBCNT wide :16 ;
331
331
REBCNT high :16 ;
332
332
} area ;
333
+ REBUPT all ; /* for copying, must have the same size as the union */
333
334
};
334
335
#ifdef SERIES_LABELS
335
336
REBYTE * label ; // identify the series
@@ -400,7 +401,7 @@ enum {
400
401
SER_MARK = 1 , // Series was found during GC mark scan.
401
402
SER_KEEP = 1 <<1 , // Series is permanent, do not GC it.
402
403
SER_LOCK = 1 <<2 , // Series is locked, do not expand it
403
- SER_EXT = 1 <<3 , // Series is external (library), do not GC it.
404
+ SER_EXT = 1 <<3 , // Series data is external (library), do not GC it.
404
405
SER_FREE = 1 <<4 , // mark series as removed
405
406
SER_BARE = 1 <<5 , // Series has no links to GC-able values
406
407
SER_PROT = 1 <<6 , // Series is protected from modification
@@ -411,11 +412,12 @@ enum {
411
412
#define SERIES_CLR_FLAG (s , f ) (SERIES_FLAGS(s) &= ~((f) << 8))
412
413
#define SERIES_GET_FLAG (s , f ) (SERIES_FLAGS(s) & ((f) << 8))
413
414
414
- #define IS_FREEABLE (s ) !SERIES_GET_FLAG(s, SER_MARK|SER_KEEP|SER_EXT| SER_FREE)
415
+ #define IS_FREEABLE (s ) !SERIES_GET_FLAG(s, SER_MARK|SER_KEEP|SER_FREE)
415
416
#define MARK_SERIES (s ) SERIES_SET_FLAG(s, SER_MARK)
416
417
#define UNMARK_SERIES (s ) SERIES_CLR_FLAG(s, SER_MARK)
417
418
#define IS_MARK_SERIES (s ) SERIES_GET_FLAG(s, SER_MARK)
418
419
#define KEEP_SERIES (s ,l ) do {SERIES_SET_FLAG(s, SER_KEEP); LABEL_SERIES(s,l);} while(0)
420
+ #define EXT_SERIES (s ) SERIES_SET_FLAG(s, SER_EXT)
419
421
#define IS_EXT_SERIES (s ) SERIES_GET_FLAG(s, SER_EXT)
420
422
#define LOCK_SERIES (s ) SERIES_SET_FLAG(s, SER_LOCK)
421
423
#define IS_LOCK_SERIES (s ) SERIES_GET_FLAG(s, SER_LOCK)
0 commit comments