Some notes:

>   case T_INT:
>+#if 0
>     sprintf(buf, "%"PRINTPIKEINT"d", sp[-1].u.integer);
>+#else
>+    {
>+#define sizeNUM(v)   (8*sizeof(v)*4/10+1+1)
                        ^^^^^^^^^^^^^^^^^^^^
It'd be nice with a comment explaining the various integers above.

>+      INT32 org;
        ^^^^^
You should probably have INT_TYPE here; otherwise there'll be problems
with semi-large integers on 64-bit architectures.

>+      char buf[sizeNUM(org)];
>+      register char*b = buf+sizeof buf-1;
>+      register unsigned i;
                 ^^^^^^^^
unsigned INT_TYPE here (same as with org above).

>+      org = sp[-1].u.integer;
[...]
>-  case T_FLOAT:
>+  case T_FLOAT: {
>+    char buf[sizeNUM(double)*2];
               ^^^^^^^^^^^^^^^^^
Is this safe? What about the exponent?

>     sprintf(buf, "%f", (double)sp[-1].u.float_number);
[...]
>-- 
>Sincerely,
>           Stephen R. van den Berg.
  • RFC int2string o... Stephen R. van den Berg
    • RFC int2str... Henrik Grubbstr�m (Lysator) @ Pike (-) developers forum
    • RFC int2str... Mirar @ Pike developers forum
    • RFC int2str... Jonas Walld�n @ Pike developers forum
      • RFC int... Peter Bortas @ Pike developers forum
        • Re:... Stephen R. van den Berg
          • ... Mirar @ Pike developers forum
            • ... Jonas Walld�n @ Pike developers forum
              • ... Mirar @ Pike developers forum
                • ... Stephen R. van den Berg
                • ... Mirar @ Pike developers forum
                • ... Stephen R. van den Berg

Reply via email to