]> git.sur5r.net Git - cc65/commitdiff
Modifications for smaller code size.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 10 Jul 2012 20:45:16 +0000 (20:45 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 10 Jul 2012 20:45:16 +0000 (20:45 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5777 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/common/fputs.c
libsrc/common/realloc.c

index 3b07d8e4d848b5e058deb1899677d3f1aa271b1d..c4c87eaa3a6fe3d3e85928ef58f101697e7f17e1 100644 (file)
@@ -13,7 +13,7 @@
 
 
 
-int __fastcall__ fputs (const char* s, FILE* f)
+int __fastcall__ fputs (const char* s, register FILE* f)
 {
     /* Check if the file is open or if there is an error condition */
     if ((f->f_flags & _FOPEN) == 0 || (f->f_flags & (_FERROR | _FEOF)) != 0) {
index f46d9a55967c4ae4276126e373bd75da52d52d0b..2bbc16d9f9e4e7ae75b21bf309c228aa6373d4d2 100644 (file)
 
 
 
-void* __fastcall__ realloc (void* block, size_t size)
+void* __fastcall__ realloc (void* block, register size_t size)
 {
-    struct usedblock* b;
+    register struct usedblock* b;
     struct usedblock* newblock;
     unsigned oldsize;
     unsigned newhptr;
-    int diff;
 
     /* Check the block parameter */
     if (!block) {
@@ -74,13 +73,10 @@ void* __fastcall__ realloc (void* block, size_t size)
     b = (((struct usedblock*) block) - 1)->start;
     oldsize = b->size;
 
-    /* Get the size difference as a signed quantity */
-    diff = size - oldsize;
-
     /* Is the block at the current heap top? */
     if (((unsigned) b) + oldsize == ((unsigned) _heapptr)) {
        /* Check if we've enough memory at the heap top */
-       newhptr = ((unsigned) _heapptr) + diff;
+       newhptr = ((unsigned) _heapptr) - oldsize + size;
        if (newhptr <= ((unsigned) _heapend)) {
            /* Ok, there's space enough */
                    _heapptr = (unsigned*) newhptr;