Macaulay2 Engine
Loading...
Searching...
No Matches
m2-types.cpp
Go to the documentation of this file.
1#include "m2-types.h"
2#include "m2-mem.h"
3#include <memory.h>
4#include <M2/gc-include.h>
5
7{
9 z->len = n;
10 //GC_CHECK_CLOBBER(z);
11 return z; /* Note that getmem_atomic returns zeroed memory */
12}
13char * M2_tocharstar(M2_string s)
14{
15 char *p = getmem_atomic(s->len + 1);
16 memcpy(p,s->array,s->len);
17 p[s->len] = 0;
18 //GC_CHECK_CLOBBER(p);
19 return p;
20}
21M2_string M2_join(M2_string x, M2_string y)
22{
23 M2_string p;
24 p = (M2_string) getmem_atomic(sizeofarray(p,x->len+y->len));
25 p->len = x->len + y->len;
26 memcpy(p->array,x->array,x->len);
27 memcpy(p->array+x->len,y->array,y->len);
28 //GC_CHECK_CLOBBER(p);
29 return p;
30}
31M2_string M2_tostring(const char* s)
32{
33 int n = s ? strlen(s) : 0;
34 M2_string p = getmematomicarraytype(M2_string,n);
35 p->len = n;
36 memcpy(p->array,s,n);
37 //GC_CHECK_CLOBBER(p);
38 return p;
39}
40M2_string M2_tostringn(char *s, int n)
41{
42 M2_string p = (M2_string)getmem_atomic(sizeofarray(p,n));
43 p->len = n;
44 memcpy(p->array,s,n);
45 //GC_CHECK_CLOBBER(p);
46 return p;
47}
48
49char newline[] = "\n";
50
52int M2_gbTrace = 0;
54
55struct FUNCTION_CELL *thread_prepare_list;
56
57/*
58 Local Variables:
59 indent-tabs-mode: nil
60 End:
61*/
int p
void size_t s
Definition m2-mem.cpp:271
char * getmem_atomic(size_t n)
Definition m2-mem.cpp:135
#define sizeofarray(s, len)
Definition m2-mem.h:129
#define getmematomicarraytype(S, len)
Definition m2-mem.h:144
Engine-wide GC allocator surface (getmem / getmem_atomic) and debug-allocation trap.
int M2_numericalAlgebraicGeometryTrace
Definition m2-types.cpp:53
M2_string M2_tostringn(char *s, int n)
Definition m2-types.cpp:40
M2_string M2_tostring(const char *s)
Definition m2-types.cpp:31
char * M2_tocharstar(M2_string s)
Definition m2-types.cpp:13
M2_arrayint M2_makearrayint(int n)
Definition m2-types.cpp:6
char newline[]
Definition m2-types.cpp:49
int M2_gbTrace
Definition m2-types.cpp:52
M2_string M2_join(M2_string x, M2_string y)
Definition m2-types.cpp:21
struct FUNCTION_CELL * thread_prepare_list
Definition m2-types.cpp:55
int M2_numTBBThreads
Definition m2-types.cpp:51
Engine-to-interpreter type vocabulary across the C++ / .dd boundary.
volatile int x