gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/font.cpp


From: Zou Lunkai
Subject: [Gnash-commit] gnash ChangeLog server/font.cpp
Date: Fri, 16 May 2008 07:18:48 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Zou Lunkai <zoulunkai>  08/05/16 07:18:48

Modified files:
        .              : ChangeLog 
        server         : font.cpp 

Log message:
        * server/font.cpp: use read_u8() instead of read_bit(), parser optimize.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6613&r2=1.6614
http://cvs.savannah.gnu.org/viewcvs/gnash/server/font.cpp?cvsroot=gnash&r1=1.64&r2=1.65

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6613
retrieving revision 1.6614
diff -u -b -r1.6613 -r1.6614
--- ChangeLog   16 May 2008 07:15:37 -0000      1.6613
+++ ChangeLog   16 May 2008 07:18:45 -0000      1.6614
@@ -1,6 +1,7 @@
 2008-05-16 Zou Lunkai <address@hidden>
        
        * server/cxform.cpp: use read_u8() instead of read_bit(), parser 
optimize.
+       * server/font.cpp: use read_u8() instead of read_bit(), parser optimize.
        
 2008-05-16 Benjamin Wolsey <address@hidden>
 

Index: server/font.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/font.cpp,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- server/font.cpp     21 Apr 2008 11:27:43 -0000      1.64
+++ server/font.cpp     16 May 2008 07:18:47 -0000      1.65
@@ -222,17 +222,18 @@
                log_parse(_("reading DefineFont2 or DefineFont3"));
                );
 
-               // TODO: should this be aligned ?
-               in->ensureBytes(2); // 1 for the flags, 1 reserved
-               bool    has_layout = in->read_bit();
-               m_shift_jis_chars = in->read_bit();
-               m_unicode_chars = in->read_bit();
-               m_ansi_chars = in->read_bit();
-               bool    wide_offsets = in->read_bit();
-               m_wide_codes = in->read_bit();
-               m_is_italic = in->read_bit();
-               m_is_bold = in->read_bit();
-               boost::uint8_t  reserved = in->read_u8();
+               in->ensureBytes(2); // 1 for the flags, 1 unknown
+        int flags = in->read_u8();
+               bool  has_layout   = flags & (1 << 7);
+               m_shift_jis_chars  = flags & (1 << 6);
+               m_unicode_chars    = flags & (1 << 5);
+               m_ansi_chars       = flags & (1 << 4);
+               bool  wide_offsets = flags & (1 << 3);
+               m_wide_codes       = flags & (1 << 2);
+               m_is_italic        = flags & (1 << 1);
+               m_is_bold          = flags & (1 << 0);
+        // don't know the usage, so we discard it.
+               int     discarded = in->read_u8();
 
                IF_VERBOSE_PARSE (
                log_parse(" has_layout = %d", has_layout);
@@ -245,9 +246,6 @@
                log_parse(" is_bold = %d", m_is_bold);
                );
 
-               // Inhibit compiler warning.
-               reserved = reserved;
-
                in->read_string_with_length(m_name);
 
                in->ensureBytes(2); 
@@ -413,7 +411,6 @@
        {
                assert(tag == SWF::DEFINEFONTINFO || tag == 
SWF::DEFINEFONTINFO2); 
 
-
                if ( tag == SWF::DEFINEFONTINFO2 )
                {
                        // See: SWFalexref/SWFalexref.html#tag_definefont2
@@ -432,19 +429,14 @@
                }
 
                in->ensureBytes(1);
-               unsigned char   flags = in->read_u8();
-
-               // The following 3 flags are reserved
-               // for SWF6+
-
-               // this is font_info_small for SWF6 or up
-               m_unicode_chars = (flags & 0x20) != 0;
-               m_shift_jis_chars = (flags & 0x10) != 0;
-               m_ansi_chars = (flags & 0x08) != 0;
-
-               m_is_italic = (flags & 0x04) != 0;
-               m_is_bold = (flags & 0x02) != 0;
-               m_wide_codes = (flags & 0x01) != 0;
+               int     flags = in->read_u8();
+        // highest two bits are reserved.
+               m_unicode_chars   = flags & (1 << 5); //???
+               m_shift_jis_chars = flags & (1 << 4);
+               m_ansi_chars      = flags & (1 << 3);
+               m_is_italic       = flags & (1 << 2);
+               m_is_bold         = flags & (1 << 1);
+               m_wide_codes      = flags & (1 << 0);
 
                read_code_table(in);
        }




reply via email to

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