Beispiel #1
0
static String 
concatstring ( intgo n , String *s ) 
{ 
intgo i , l , count; 
String out; 
#line 153 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
l = 0; 
count = 0; 
for ( i=0; i<n; i++ ) { 
if ( l + s[i].len < l ) 
runtime·throw ( "string concatenation too long" ) ; 
l += s[i].len; 
if ( s[i].len > 0 ) { 
count++; 
out = s[i]; 
} 
} 
if ( count == 0 ) 
return runtime·emptystring; 
if ( count == 1 ) 
return out; 
#line 169 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
out = gostringsize ( l ) ; 
l = 0; 
for ( i=0; i<n; i++ ) { 
runtime·memmove ( out.str+l , s[i].str , s[i].len ) ; 
l += s[i].len; 
} 
return out; 
} 
Beispiel #2
0
void
runtime·slicerunetostring(Slice b, String s)
{
	s.str = 0;
	s.len = 0;
	FLUSH(&s);
#line 309 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"

	intgo siz1, siz2, i;
	int32 *a;
	byte dum[8];
	void *pc;

	if(raceenabled) {
		pc = runtime·getcallerpc(&b);
		runtime·racereadrangepc(b.array, b.len*sizeof(*a), pc, runtime·slicerunetostring);
	}
	a = (int32*)b.array;
	siz1 = 0;
	for(i=0; i<b.len; i++) {
		siz1 += runtime·runetochar(dum, a[i]);
	}

	s = gostringsize(siz1+4);
	siz2 = 0;
	for(i=0; i<b.len; i++) {
		// check for race
		if(siz2 >= siz1)
			break;
		siz2 += runtime·runetochar(s.str+siz2, a[i]);
	}
	s.len = siz2;
	s.str[s.len] = 0;
	FLUSH(&s);
}
Beispiel #3
0
void
runtime·slicerunetostring(Slice b, String s)
{
#line 3599 "C:\Go\src\pkg\runtime\string.goc"

	int32 siz1, siz2, i;
	int32 *a;
	byte dum[8];

	a = (int32*)b.array;
	siz1 = 0;
	for(i=0; i<b.len; i++) {
		siz1 += runtime·runetochar(dum, a[i]);
	}

	s = gostringsize(siz1+4);
	siz2 = 0;
	for(i=0; i<b.len; i++) {
		// check for race
		if(siz2 >= siz1)
			break;
		siz2 += runtime·runetochar(s.str+siz2, a[i]);
	}
	s.len = siz2;
	s.str[s.len] = 0;
	FLUSH(&s);
}
String 
runtime·gostringn ( byte *str , intgo l ) 
{ 
String s; 
#line 78 "/home/pi/go_build/go/src/pkg/runtime/string.goc"
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #5
0
String 
runtime·gostringn ( byte *str , intgo l ) 
{ 
String s; 
#line 76 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #6
0
String 
runtime·gostringn ( byte *str , int32 l ) 
{ 
String s; 
#line 3393 "C:\Go\src\pkg\runtime\string.goc"
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #7
0
void
runtime·slicebytetostring(Slice b, String s)
{
#line 3587 "C:\Go\src\pkg\runtime\string.goc"

	s = gostringsize(b.len);
	runtime·memmove(s.str, b.array, s.len);
	FLUSH(&s);
}
void
runtime·intstring(int64 v, String s)
{
#line 244 "/home/pi/go_build/go/src/pkg/runtime/string.goc"

	s = gostringsize(8);
	s.len = runtime·runetochar(s.str, v);
	s.str[s.len] = 0;
	FLUSH(&s);
}
Beispiel #9
0
void
runtime·intstring(int64 v, String s)
{
#line 3581 "C:\Go\src\pkg\runtime\string.goc"

	s = gostringsize(8);
	s.len = runtime·runetochar(s.str, v);
	s.str[s.len] = 0;
	FLUSH(&s);
}
Beispiel #10
0
String 
runtime·gostring ( byte *str ) 
{ 
intgo l; 
String s; 
#line 65 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
l = runtime·findnull ( str ) ; 
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #11
0
String 
runtime·gostring ( byte *str ) 
{ 
intgo l; 
String s; 
#line 67 "/home/pi/go_build/go/src/pkg/runtime/string.goc"
l = runtime·findnull ( str ) ; 
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #12
0
String 
runtime·gostring ( byte *str ) 
{ 
int32 l; 
String s; 
#line 3382 "C:\Go\src\pkg\runtime\string.goc"
l = runtime·findnull ( str ) ; 
s = gostringsize ( l ) ; 
runtime·memmove ( s.str , str , l ) ; 
return s; 
} 
Beispiel #13
0
void
runtime·intstring(int64 v, String s)
{
	s.str = 0;
	s.len = 0;
	FLUSH(&s);
#line 280 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"

	s = gostringsize(8);
	s.len = runtime·runetochar(s.str, v);
	s.str[s.len] = 0;
	FLUSH(&s);
}
Beispiel #14
0
String 
runtime·catstring ( String s1 , String s2 ) 
{ 
String s3; 
#line 140 "/home/pi/go_build/go/src/pkg/runtime/string.goc"
if ( s1.len == 0 ) 
return s2; 
if ( s2.len == 0 ) 
return s1; 
#line 145 "/home/pi/go_build/go/src/pkg/runtime/string.goc"
s3 = gostringsize ( s1.len + s2.len ) ; 
runtime·memmove ( s3.str , s1.str , s1.len ) ; 
runtime·memmove ( s3.str+s1.len , s2.str , s2.len ) ; 
return s3; 
} 
Beispiel #15
0
void
runtime·slicebytetostring(Slice b, String s)
{
#line 250 "/home/pi/go_build/go/src/pkg/runtime/string.goc"

	void *pc;

	if(raceenabled) {
		pc = runtime·getcallerpc(&b);
		runtime·racereadrangepc(b.array, b.len, pc, runtime·slicebytetostring);
	}
	s = gostringsize(b.len);
	runtime·memmove(s.str, b.array, s.len);
	FLUSH(&s);
}
Beispiel #16
0
String 
runtime·catstring ( String s1 , String s2 ) 
{ 
String s3; 
#line 136 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
if ( s1.len == 0 ) 
return s2; 
if ( s2.len == 0 ) 
return s1; 
#line 141 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
s3 = gostringsize ( s1.len + s2.len ) ; 
runtime·memmove ( s3.str , s1.str , s1.len ) ; 
runtime·memmove ( s3.str+s1.len , s2.str , s2.len ) ; 
return s3; 
} 
Beispiel #17
0
String 
runtime·catstring ( String s1 , String s2 ) 
{ 
String s3; 
#line 3448 "C:\Go\src\pkg\runtime\string.goc"
if ( s1.len == 0 ) 
return s2; 
if ( s2.len == 0 ) 
return s1; 
#line 3453 "C:\Go\src\pkg\runtime\string.goc"
s3 = gostringsize ( s1.len + s2.len ) ; 
runtime·memmove ( s3.str , s1.str , s1.len ) ; 
runtime·memmove ( s3.str+s1.len , s2.str , s2.len ) ; 
return s3; 
} 
Beispiel #18
0
void
runtime·slicebytetostring(Slice b, String s)
{
	s.str = 0;
	s.len = 0;
	FLUSH(&s);
#line 286 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"

	void *pc;

	if(raceenabled) {
		pc = runtime·getcallerpc(&b);
		runtime·racereadrangepc(b.array, b.len, pc, runtime·slicebytetostring);
	}
	s = gostringsize(b.len);
	runtime·memmove(s.str, b.array, s.len);
	FLUSH(&s);
}
Beispiel #19
0
static String 
concatstring ( int32 n , String *s ) 
{ 
int32 i , l; 
String out; 
#line 3465 "C:\Go\src\pkg\runtime\string.goc"
l = 0; 
for ( i=0; i<n; i++ ) { 
if ( l + s[i].len < l ) 
runtime·throw ( "string concatenation too long" ) ; 
l += s[i].len; 
} 
#line 3472 "C:\Go\src\pkg\runtime\string.goc"
out = gostringsize ( l ) ; 
l = 0; 
for ( i=0; i<n; i++ ) { 
runtime·memmove ( out.str+l , s[i].str , s[i].len ) ; 
l += s[i].len; 
} 
return out; 
} 
Beispiel #20
0
String 
runtime·gostringw ( uint16 *str ) 
{ 
intgo n1 , n2 , i; 
byte buf[8]; 
String s; 
#line 115 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
n1 = 0; 
for ( i=0; str[i]; i++ ) 
n1 += runtime·runetochar ( buf , str[i] ) ; 
s = gostringsize ( n1+4 ) ; 
n2 = 0; 
for ( i=0; str[i]; i++ ) { 
#line 122 "/home/14/ren/source/golang/go/src/pkg/runtime/string.goc"
if ( n2 >= n1 ) 
break; 
n2 += runtime·runetochar ( s.str+n2 , str[i] ) ; 
} 
s.len = n2; 
s.str[s.len] = 0; 
return s; 
} 
Beispiel #21
0
String 
runtime·gostringw ( uint16 *str ) 
{ 
int32 n1 , n2 , i; 
byte buf[8]; 
String s; 
#line 3427 "C:\Go\src\pkg\runtime\string.goc"
n1 = 0; 
for ( i=0; str[i]; i++ ) 
n1 += runtime·runetochar ( buf , str[i] ) ; 
s = gostringsize ( n1+4 ) ; 
n2 = 0; 
for ( i=0; str[i]; i++ ) { 
#line 3434 "C:\Go\src\pkg\runtime\string.goc"
if ( n2 >= n1 ) 
break; 
n2 += runtime·runetochar ( s.str+n2 , str[i] ) ; 
} 
s.len = n2; 
s.str[s.len] = 0; 
return s; 
}