]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: use correct types for maxstring and concatstring
authorRob Pike <r@golang.org>
Tue, 6 Aug 2013 20:49:11 +0000 (06:49 +1000)
committerRob Pike <r@golang.org>
Tue, 6 Aug 2013 20:49:11 +0000 (06:49 +1000)
Updates #6046.
This CL just does maxstring and concatstring. There are other functions
to fix but doing them a few at a time will help isolate any (unlikely)
breakages these changes bring up in architectures I can't test
myself.

R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/12519044

src/pkg/runtime/print.c
src/pkg/runtime/runtime.h
src/pkg/runtime/string.goc

index 922076235503e9631086247cb3dd07fe932d1e06..4950cfaa31580fc83b4a9005d6bf954507f535df 100644 (file)
@@ -350,8 +350,6 @@ runtime·printpointer(void *p)
 void
 runtime·printstring(String v)
 {
-       extern uint32 runtime·maxstring;
-
        if(v.len > runtime·maxstring) {
                gwrite("[string too long]", 17);
                return;
index ff3ecfaaaff405a6078698adaf9379de36a91be8..55ae16e27627e24010405872400ebfb238615efb 100644 (file)
@@ -706,7 +706,7 @@ extern      int8*   runtime·goos;
 extern int32   runtime·ncpu;
 extern bool    runtime·iscgo;
 extern         void    (*runtime·sysargs)(int32, uint8**);
-extern uint32  runtime·maxstring;
+extern uintptr runtime·maxstring;
 extern uint32  runtime·Hchansize;
 extern uint32  runtime·cpuid_ecx;
 extern uint32  runtime·cpuid_edx;
index c7632b2a96b92d6022b65314a52c34a133556072..0c0129e267ad6b845b7653dbbc2ffc737e3bc7df 100644 (file)
@@ -35,13 +35,13 @@ runtime·findnullw(uint16 *s)
        return l;
 }
 
-uint32 runtime·maxstring = 256; // a hint for print
+uintptr runtime·maxstring = 256; // a hint for print
 
 static String
 gostringsize(intgo l)
 {
        String s;
-       uint32 ms;
+       uintptr ms;
 
        if(l == 0)
                return runtime·emptystring;
@@ -51,7 +51,7 @@ gostringsize(intgo l)
        s.str[l] = 0;
        for(;;) {
                ms = runtime·maxstring;
-               if((uint32)l <= ms || runtime·cas(&runtime·maxstring, ms, (uint32)l))
+               if((uintptr)l <= ms || runtime·casp((void**)&runtime·maxstring, (void*)ms, (void*)l))
                        break;
        }
        return s;
@@ -176,7 +176,7 @@ concatstring(intgo n, String *s)
 // not have a fixed size argument count.
 #pragma textflag 7
 void
-runtime·concatstring(int32 n, String s1, ...)
+runtime·concatstring(intgo n, String s1, ...)
 {
        (&s1)[n] = concatstring(n, &s1);
 }