[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pdf-devel] Re: rldec eod management
From: |
gerel |
Subject: |
[pdf-devel] Re: rldec eod management |
Date: |
Sun, 28 Sep 2008 16:44:42 -0700 (PDT) |
> Date: Mon, 29 Sep 2008 00:02:28 +0200
> From: address@hidden
>
> Hi Gerel.
>
> I think I know why it's not reaching there. It's particular to RL and we
> may see
> this behavior in other filters too.
>
> The thing is this, when you ask the filter to read N bytes, as soon as
> you get
> the N bytes the apply() function isn't called anymore, leaving in this
> case the
> EOD marker. Other filters may actually need and look for the trailing
> character
> in order to finish the decoding process, but the RL doesn't need it to
> decode
> data.
>
> It is ok then. The behaviour of the implementation is as expected.
> Could you write a little unit test to consume the EOD marker?
Sure, I send a patch at the end of this email.
BTW, It would be nice to document a bit more which error codes the Stream
implementation is waiting from the Filters and how each one behaves. (until now
I had to deduce this by reading the Stream source code)
OTOH I hope I get the flate filter working during the week, zlib API isn't
trivial, at least for me. :-)
BTW, I didn't understand you when you asked me to add filters in the pdf-filter
utility, now I know what you meant, I'll do it for the flate filter, no problem.
##
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/
# testament_sha1: b94745c33278fb762f89c90c400d0ab3d303cdce
# timestamp: 2008-09-28 20:21:43 -0300
# base_revision_id: address@hidden
#
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog 2008-09-28 14:00:42 +0000
+++ ChangeLog 2008-09-28 23:21:24 +0000
@@ -1,3 +1,9 @@
+2008-09-28 Gerardo E. Gidoni <address@hidden>
+
+ * src/base/pdf-stm-f-rl.c: decoder EOD mark fix.
+
+ * torture/unit/base/stm/pdf-stm-read.c: force RL decoder to consume EOD.
+
2008-09-28 Jose E. Marchesi <address@hidden>
* doc/gnupdf-tsd.texi (pdf_stm_read): Documentation added for the
=== modified file 'src/base/pdf-stm-f-rl.c'
--- src/base/pdf-stm-f-rl.c 2008-09-28 13:51:52 +0000
+++ src/base/pdf-stm-f-rl.c 2008-09-28 23:21:24 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/09/28 15:45:51 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-09-28 20:18:38 gerel"
*
* File: pdf-stm-f-rl.c
* Date: Sun Jul 15 22:01:18 2007
@@ -206,8 +206,7 @@
/* EOD mark */
else
{
- in->rp++;
- break;
+ st->run_p = PDF_FALSE;
}
}
=== modified file 'torture/unit/base/stm/pdf-stm-read.c'
--- torture/unit/base/stm/pdf-stm-read.c 2008-09-28 14:00:42 +0000
+++ torture/unit/base/stm/pdf-stm-read.c 2008-09-28 23:21:24 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/09/28 15:58:55 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-09-28 20:17:40 gerel"
*
* File: pdf-stm-read.c
* Date: Sat Sep 20 15:20:17 2008
@@ -306,7 +306,7 @@
pdf_size_t buf_size, total=46,read;
pdf_char_t *dataux, *encoded =
"\x00" "1" "\xff" "2" "\xfe" "3" "\xfd" "4" "\xfc" "5" "\xfb" "6" \
- "\xfa" "7" "\xf9" "8" "\xf8" "9" "\x00" "\x00" "\x80";
+ "\xfa" "7" "\xf9" "8" "\xf8" "9" "\x80" "\x00" "\x00" "\x80";
/* Writing stream */
/* Create a memory buffer */
@@ -315,7 +315,7 @@
fail_if(buf == NULL);
/* Create the stream */
ret = pdf_stm_mem_new (encoded,
- 21,
+ 22,
1, /* Minimum, to restore filter's state */
PDF_STM_READ,
&stm);
# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWTYK7PEAAxB/gEEwAgBRd///
f4TcBL////BQBXvWsiUAkBIoAiE0JtTNIxG1GIA0yDRpkGJoABzTEyZNGEwTE0wCYBDBGBGASJCm
ETNIZTelPSbU09NT1PUDQAMJ5TIHNMTJk0YTBMTTAJgEMEYEYBJImIAjEaT0EnpNpJ7UwpjKZqaA
0zSUJhz4zPKyb8sPJB2Z+GeIjO/I0YalANYXfTBmwUwAEVmbXlU+55EheIevo/gYIPrZyN5MHkIs
/mlBwkq1kzRLiHdOJTIpKCZSKnKl3fcc2/8059suo8eOuz4KCN3KO79carLKY4ILYGFkYhdXlkgA
CpQBWg5wIMmO/tyNxdGqZ5zvnVXG1Ut2ypqDpGhjeSbxzmLdABikXdZ3m8K8giDkRWqc6GNJx+zh
4BIij7juWQjjvoIfbWPNq4lowe7l9K56uthhm3iDvMg1aZr+y5eY19CSkcZy2hraV2jKNqXKSmUT
Q1pRUkK8ZQGivgNLWch7LSRaygHEq5EiGpsSKMlQwq0QSKBgoWnuxFZSvGg2NKdtGNSlzT1NNiJ+
52nRRhWejhgsmGRzCqnA75zA1aCbu9oizc+sLC0yLzTshi5GxYPyOnWOEicgjZFgcaMlrEV+cX50
kV2lQiJlBFJE3cYRlSIANBVoMsASI6PwInooqse+xU6qiSeMRSIMPQ9PM8GsHlxyMjgcT4CIXWCN
VVqVaYJq0O4bh5f0mweqTO860ZFgUEicGNhuHRUG2GzBsJr5IuNBYQKiogMdDHQMToazUSczrqZn
VlttkrTDEuKisbWfdYlBA0FJYyKyBpOIjkSTyVjygmB7xhhzFJsLSBWXvQ5DysmGJExsWrKCiaKb
X2LcMkiUhQ13DxFkchigyGua8kYiOKMxEBE060Wz6iZMKLjUMASUCwwJEtxpNpQYtVFyfhMhgZD5
wrFTZjvNXSXsNDD5si4yu6scN3uI12qFMa3YvaGn1ywQVOJadWsTSOymUbaY+XjK+475b6oPDrg4
G+qomM/RxYlbnLFMOYTjHCZamXueBEPyxvYOwac3i7agpT7aV4eIpqkDuaZc+7maR5yO4nnD3nab
Ow1lR3FRD09oj5EGC+ke4oMCBso8fAl57XCjolQ/ebRpTBd8TAHmogh5BEB84H1KBifID1YH2ii7
fs8FxeOTiOe8vNIw8/LeR7DpPkY8laHyI0sdjP0JhdZAqNAdlZhAvLqhiQBSeYnH7JkvOladH4nS
WWYZmoi2wqEPS7RE19hYHI7T2nzXM6zIIMgWaUR+FsWxGvpgKzKXBuzKpzIIQHpK2Jm2w7txJDXF
h8RBYeHUbLxGeEtQG+Dkmi7MI6e5dqLItH0A7JGlEUHqPMvAVe31yfDAkwHvEWz1KZePBY7mCKMN
d7RcGIu9H6KKKkWp4LqQcfg86dGADxY0qM5OHHJ5ORJX80XvVCxCR30R8m7mBjdgWGAUnCj1UnK5
ENKwQQtHNiyF48tf1zGS8ZVJH61Po1iGDhYK3yEDLXVMF/BhF6yW3btR8fZMzDM0QkF1WcaBprTM
uEZ0bnA4Xwd7OBNAWaGsmuGxnSUEF3VqWlk+SqEHgT0UfON40l5nRLWGMKRhihyijSTOGbArXQik
OkQygjTJetw7NwY3hSLe1dhZQZ9UCR5CkmuuSjfvHk8heIwPYTUBzQxFkWOXUk8QMuvTPC91u03C
KFgItVC8sS0/J8xhzKSVtbdTxFgiabny10BKCP/F3JFOFCQNgrs8QA==
###
-gerel