]> git.mdlowis.com Git - proto/sclpl.git/commitdiff
Fixed stack reference in C99/pal.c
authorMichael D. Lowis <mike@mdlowis.com>
Mon, 23 Jun 2014 20:34:51 +0000 (16:34 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Mon, 23 Jun 2014 20:34:51 +0000 (16:34 -0400)
source/slvm/platforms/C99/pal.c

index cf586605ede0672a2840104ba10f686eb2166745..34781d639287805c80cb00250d001627324ef0a2 100644 (file)
-/**
-  @file pal.c
-  @brief See header for details
-  $Revision$
-  $HeadURL$
-*/
-#include "pal.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-static val_t AStack[STACK_SIZE];
-static val_t RStack[STACK_SIZE];
-static bool Line_Read = true;
-
-val_t* ArgStack = AStack - 1;
-val_t* RetStack = RStack - 1;
-val_t* CodePtr = 0;
-
-defcode("allocate", mem_alloc, 1, NULL){
-    *(ArgStack) = (val_t)pal_allocate((size_t)*(ArgStack));
-}
-
-defcode("reallocate", mem_realloc, 1, &mem_alloc){
-    *(ArgStack-1) = (val_t)pal_reallocate((void*)*(ArgStack-1),*(ArgStack));
-    ArgStack--;
-}
-
-defcode("free", mem_free, 1, &mem_realloc){
-    pal_free((void*)*(ArgStack));
-    ArgStack--;
-}
-
-dict_t* pal_init(dict_t* p_prev)
-{
-    dict_t* p_dict = (dict_t*)pal_allocate(sizeof(dict_t));
-    p_dict->name    = "pal";
-    p_dict->p_prev  = p_prev;
-    p_dict->p_words = (word_t*)&mem_realloc;
-    return p_dict;
-}
-
-void pal_prompt(void)
-{
-    extern val_t state_val;
-    int i;
-    if(Line_Read)
-    {
-        val_t stacksz = ArgStack - Stack + 1;
-        if (stacksz > 5)
-            printf("( ... ");
-        else
-            printf("( ");
-
-        for(i = (stacksz > 5) ? 4 : stacksz-1; i >= 0; i--)
-        {
-            printf("%ld ", *(ArgStack-i));
-        }
-        printf(")\n%s ", (state_val == 0) ? "=>" : "..");
-        Line_Read = false;
-    }
-}
-
-void pal_unknown_word(char* p_str)
-{
-    printf("%s ?\n", p_str);
-}
-
-void* pal_allocate(size_t size)
-{
-    return malloc(size);
-}
-
-void* pal_reallocate(void* p_mem, size_t size)
-{
-    return realloc(p_mem, size);
-}
-
-void pal_free(void* p_mem)
-{
-    free(p_mem);
-}
-
-char pal_read_char(void)
-{
-    return fgetc(stdin);
-}
-
-char pal_peek_char(void)
-{
-    char ch = fgetc(stdin);
-    ungetc(ch,stdin);
-    if ((ch == '\n') || (ch == '\r'))
-    {
-        Line_Read = true;
-    }
-    return ch;
-}
-
-bool pal_is_eof(void)
-{
-    return feof(stdin);
-}
-
-int pal_strcmp(const char* p_str1, const char* p_str2)
-{
-    return strcmp(p_str1, p_str2);
-}
-
-size_t pal_strlen(char* p_str)
-{
-    return strlen( p_str );
-}
-
-char* pal_strcpy(char* p_dest, const char* p_src)
-{
-    return strcpy(p_dest, p_src);
-}
-
+/**\r
+  @file pal.c\r
+  @brief See header for details\r
+  $Revision$\r
+  $HeadURL$\r
+*/\r
+#include "pal.h"\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+\r
+static val_t AStack[STACK_SIZE];\r
+static val_t RStack[STACK_SIZE];\r
+static bool Line_Read = true;\r
+\r
+val_t* ArgStack = AStack - 1;\r
+val_t* RetStack = RStack - 1;\r
+val_t* CodePtr = 0;\r
+\r
+defcode("allocate", mem_alloc, 1, NULL){\r
+    *(ArgStack) = (val_t)pal_allocate((size_t)*(ArgStack));\r
+}\r
+\r
+defcode("reallocate", mem_realloc, 1, &mem_alloc){\r
+    *(ArgStack-1) = (val_t)pal_reallocate((void*)*(ArgStack-1),*(ArgStack));\r
+    ArgStack--;\r
+}\r
+\r
+defcode("free", mem_free, 1, &mem_realloc){\r
+    pal_free((void*)*(ArgStack));\r
+    ArgStack--;\r
+}\r
+\r
+dict_t* pal_init(dict_t* p_prev)\r
+{\r
+    dict_t* p_dict = (dict_t*)pal_allocate(sizeof(dict_t));\r
+    p_dict->name    = "pal";\r
+    p_dict->p_prev  = p_prev;\r
+    p_dict->p_words = (word_t*)&mem_realloc;\r
+    return p_dict;\r
+}\r
+\r
+void pal_prompt(void)\r
+{\r
+    extern val_t state_val;\r
+    int i;\r
+    if(Line_Read)\r
+    {\r
+        val_t stacksz = ArgStack - AStack + 1;\r
+        if (stacksz > 5)\r
+            printf("( ... ");\r
+        else\r
+            printf("( ");\r
+\r
+        for(i = (stacksz > 5) ? 4 : stacksz-1; i >= 0; i--)\r
+        {\r
+            printf("%ld ", *(ArgStack-i));\r
+        }\r
+        printf(")\n%s ", (state_val == 0) ? "=>" : "..");\r
+        Line_Read = false;\r
+    }\r
+}\r
+\r
+void pal_unknown_word(char* p_str)\r
+{\r
+    printf("%s ?\n", p_str);\r
+}\r
+\r
+void* pal_allocate(size_t size)\r
+{\r
+    return malloc(size);\r
+}\r
+\r
+void* pal_reallocate(void* p_mem, size_t size)\r
+{\r
+    return realloc(p_mem, size);\r
+}\r
+\r
+void pal_free(void* p_mem)\r
+{\r
+    free(p_mem);\r
+}\r
+\r
+char pal_read_char(void)\r
+{\r
+    return fgetc(stdin);\r
+}\r
+\r
+char pal_peek_char(void)\r
+{\r
+    char ch = fgetc(stdin);\r
+    ungetc(ch,stdin);\r
+    if ((ch == '\n') || (ch == '\r'))\r
+    {\r
+        Line_Read = true;\r
+    }\r
+    return ch;\r
+}\r
+\r
+bool pal_is_eof(void)\r
+{\r
+    return feof(stdin);\r
+}\r
+\r
+int pal_strcmp(const char* p_str1, const char* p_str2)\r
+{\r
+    return strcmp(p_str1, p_str2);\r
+}\r
+\r
+size_t pal_strlen(char* p_str)\r
+{\r
+    return strlen( p_str );\r
+}\r
+\r
+char* pal_strcpy(char* p_dest, const char* p_src)\r
+{\r
+    return strcpy(p_dest, p_src);\r
+}\r
+\r