gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog libamf/buffer.cpp libamf/buffer...


From: Rob Savoye
Subject: [Gnash-commit] gnash ChangeLog libamf/buffer.cpp libamf/buffer...
Date: Fri, 11 Apr 2008 21:04:34 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/04/11 21:04:34

Modified files:
        .              : ChangeLog 
        libamf         : buffer.cpp buffer.h 
        testsuite/libamf.all: test_buffer.cpp 

Log message:
                * libamf/buffer.h: Check _seekptr, not nbytes to determine if a
                buffer is ::empty().
                * libamf/buffer.cpp: Fix bugs in ::remove() method.
                * testsuite/libamf.all/buffer.cpp: Add tests for ::remove().

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6261&r2=1.6262
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/buffer.cpp?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/buffer.h?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/libamf.all/test_buffer.cpp?cvsroot=gnash&r1=1.2&r2=1.3

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6261
retrieving revision 1.6262
diff -u -b -r1.6261 -r1.6262
--- ChangeLog   11 Apr 2008 19:02:33 -0000      1.6261
+++ ChangeLog   11 Apr 2008 21:04:33 -0000      1.6262
@@ -1,5 +1,10 @@
 2008-04-11  Rob Savoye  <address@hidden>
 
+       * libamf/buffer.h: Check _seekptr, not nbytes to determine if a
+       buffer is ::empty().
+       * libamf/buffer.cpp: Fix bugs in ::remove() method.
+       * testsuite/libamf.all/buffer.cpp: Add tests for ::remove().
+ 
        * libamf/buffer.{h,cpp}: Cleanup minor bugs found by newly
        expanded test case. Rename empty() to clear().
        * libamf/amf.cpp: Don't take 1 off the end of the string. Comment

Index: libamf/buffer.cpp
===================================================================
RCS file: /sources/gnash/gnash/libamf/buffer.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libamf/buffer.cpp   11 Apr 2008 19:02:35 -0000      1.3
+++ libamf/buffer.cpp   11 Apr 2008 21:04:34 -0000      1.4
@@ -365,14 +365,16 @@
 {
 //    GNASH_REPORT_FUNCTION;
     Network::byte_t *start = find(c);
-    log_debug("FRAME MARK is at %x", (void *)start);
+
+    log_debug("Byte is at %x", (void *)start);
+    
     if (start == 0) {
        return 0;
     }
-//    std::copy((start + 1), end(), start);
-    *start = '*';
-//    *end() = 0;
-//    _nbytes--;
+    
+    std::copy(start + 1, end(), start);
+    *(end()) = 0;
+    _nbytes--;
 
     return _ptr;
 }
@@ -391,9 +393,9 @@
 Buffer::remove(int start, int stop)
 {
 //    GNASH_REPORT_FUNCTION;
-    std::copy((_ptr + start), end(), (_ptr + stop)),
+    std::copy((_ptr + stop + 1), end(), (_ptr + start)),
 //    *end() = 0;
-    _nbytes--;
+    _nbytes -= stop-start;
     return _ptr;
 }
 

Index: libamf/buffer.h
===================================================================
RCS file: /sources/gnash/gnash/libamf/buffer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libamf/buffer.h     11 Apr 2008 19:02:35 -0000      1.3
+++ libamf/buffer.h     11 Apr 2008 21:04:34 -0000      1.4
@@ -42,7 +42,7 @@
     // Delete the allocate memory
     ~Buffer();
     void clear();
-    bool empty() { return (_nbytes)?true:false; };
+    bool empty() { return (_seekptr)?true:false; };
 
     // Resize the buffer that holds the data
     void *resize(size_t nbytes);

Index: testsuite/libamf.all/test_buffer.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/libamf.all/test_buffer.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- testsuite/libamf.all/test_buffer.cpp        11 Apr 2008 19:02:35 -0000      
1.2
+++ testsuite/libamf.all/test_buffer.cpp        11 Apr 2008 21:04:34 -0000      
1.3
@@ -151,8 +151,6 @@
         mem->addStats(__LINE__);             // take a sample
     }
 
-// amf::Buffer::empty()
-
     // test creating Buffers
     test_construct();
     // test destroying Buffers
@@ -335,9 +333,55 @@
 void
 test_remove()
 {
-// amf::Buffer::remove(unsigned char)
-// amf::Buffer::remove(int)
-// amf::Buffer::remove(int, int)
+    Network::byte_t *data1 = new Network::byte_t[10];
+    memset(data1, 0, 10);
+    Network::byte_t *data2 = new Network::byte_t[10];
+    memset(data2, 0, 10);
+    for (size_t i=0; i< 10; i++) {
+        data1[i] = i + 'a';
+    }
+
+    // Build identical buffer nissing one character
+    memcpy(data2, data1, 6);
+    memcpy(data2 + 6, data1 + 7, 5);
+
+    // Remove a single byte
+    Network::byte_t byte = 'g';
+    Buffer buf1(10);
+    buf1.clear();
+    buf1.copy(data1, 10);
+    buf1.remove(byte);
+    if (memcmp(data2, buf1.reference(), 9) == 0) {
+         runtest.pass ("Buffer::remove(Network::byte_t)");
+    } else {
+         runtest.fail ("Buffer::remove(Network::byte_t)");
+    }
+    
+    Buffer buf2(10);
+    buf2.clear();
+    buf2.copy(data1, 10);
+    buf2.remove(6);
+    if (memcmp(data2, buf2.reference(), 9) == 0) {
+         runtest.pass ("Buffer::remove(int)");
+    } else {
+         runtest.fail ("Buffer::remove(int)");
+    }
+
+    // Remove a range of bytes
+    Network::byte_t *data3 = new Network::byte_t[10];
+    memset(data3, 0, 10);
+    memcpy(data3, data1, 6);
+    memcpy(data3 + 6, data1 + 9, 5);
+    
+    Buffer buf3(10);
+    buf3.clear();
+    buf3.copy(data1, 10);
+    buf3.remove(6, 8);
+    if (memcmp(data3, buf3.reference(), 7) == 0) {
+         runtest.pass ("Buffer::remove(int, int)");
+    } else {
+         runtest.fail ("Buffer::remove(int, int)");
+    }    
 }
 
 void




reply via email to

[Prev in Thread] Current Thread [Next in Thread]