[HB] Remove all references to the old code!
diff --git a/src/Makefile.am b/src/Makefile.am
index e04419e..dc92c7a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,7 @@
## Process this file with automake to produce Makefile.in
+NULL =
+
INCLUDES = \
-I $(srcdir) \
$(FREETYPE_CFLAGS) \
@@ -8,63 +10,33 @@
noinst_LTLIBRARIES = libharfbuzz-1.la
-MAINSOURCES = \
- $(INCLUDEDSOURCES) \
- hb-ot-layout.cc
-# harfbuzz.c
-
-# included from harfbuzz.c
-INCLUDEDSOURCES = \
+HBSOURCES = \
harfbuzz-buffer.c \
- harfbuzz-gpos.c \
- harfbuzz-gsub.c \
- harfbuzz-impl.c \
- harfbuzz-open.c \
- harfbuzz-stream.c
+ hb-private.h \
+ hb-ot-layout.cc \
+ hb-ot-layout-common-private.h \
+ hb-ot-layout-gdef-private.h \
+ hb-ot-layout-gpos-private.h \
+ hb-ot-layout-gsubgpos-private.h \
+ hb-ot-layout-gsub-private.h \
+ hb-ot-layout-open-private.h \
+ hb-ot-layout-private.h \
+ $(NULL)
-PUBLICHEADERS = \
- harfbuzz.h \
- harfbuzz-global.h \
+HBHEADERS = \
+ hb-common.h \
harfbuzz-buffer.h \
- harfbuzz-gpos.h \
- harfbuzz-gsub.h \
- harfbuzz-open.h
+ hb-ot-layout.h \
+ $(NULL)
-PRIVATEHEADERS = \
- harfbuzz-impl.h \
- harfbuzz-buffer-private.h \
- harfbuzz-gpos-private.h \
- harfbuzz-gsub-private.h \
- harfbuzz-open-private.h \
- harfbuzz-stream-private.h
+libharfbuzz_1_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
+libharfbuzz_1_la_LIBADD = $(FREETYPE_LIBS)
-libharfbuzz_1_la_SOURCES = \
- $(MAINSOURCES) \
- $(PUBLICHEADERS) \
- $(PRIVATEHEADERS)
+noinst_PROGRAMS = main
-libharfbuzz_1_la_LIBADD = \
- $(FREETYPE_LIBS)
+main_SOURCES = main.cc
+main_LDADD = $(GLIB_LIBS)
-noinst_PROGRAMS = harfbuzz-dump main
-
-harfbuzz_dump_SOURCES = \
- harfbuzz-dump.c \
- harfbuzz-dump.h \
- harfbuzz-dump-main.c
-
-harfbuzz_dump_LDADD = \
- $(libharfbuzz_1_la_LIBADD) \
- libharfbuzz-1.la
-
-main_SOURCES = \
- main.cc
-main_LDADD = \
- $(GLIB_LIBS)
-
-EXTRA_DIST = \
- README \
- COPYING \
- $(INCLUDEDSOURCES)
+EXTRA_DIST = README COPYING
-include $(top_srcdir)/git.mk
diff --git a/src/harfbuzz-buffer.c b/src/harfbuzz-buffer.c
index 8e93203..133cb80 100644
--- a/src/harfbuzz-buffer.c
+++ b/src/harfbuzz-buffer.c
@@ -59,11 +59,12 @@
/* Internal API */
-/*static XXX */ HB_Error
-hb_buffer_ensure( HB_Buffer buffer,
- HB_UInt size )
+/*static XXX */ void
+hb_buffer_ensure (hb_buffer_t *buffer,
+ unsigned int size)
{
HB_UInt new_allocated = buffer->allocated;
+ /* XXX err handling */
if (size > new_allocated)
{
@@ -72,52 +73,39 @@
while (size > new_allocated)
new_allocated += (new_allocated >> 1) + 8;
- if ( buffer->positions )
+ if (buffer->positions)
+ buffer->positions = realloc (buffer->positions, new_allocated * sizeof (buffer->positions[0]));
+
+ buffer->in_string = realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0]));
+
+ if (buffer->separate_out)
{
- if ( REALLOC_ARRAY( buffer->positions, new_allocated, HB_PositionRec ) )
- return error;
- }
-
- if ( REALLOC_ARRAY( buffer->in_string, new_allocated, HB_GlyphItemRec ) )
- return error;
-
- if ( buffer->separate_out )
- {
- if ( REALLOC_ARRAY( buffer->alt_string, new_allocated, HB_GlyphItemRec ) )
- return error;
-
+ buffer->alt_string = realloc (buffer->alt_string, new_allocated * sizeof (buffer->alt_string[0]));
buffer->out_string = buffer->alt_string;
}
else
{
buffer->out_string = buffer->in_string;
- if ( buffer->alt_string )
+ if (buffer->alt_string)
{
- if ( REALLOC_ARRAY( buffer->alt_string, new_allocated, HB_GlyphItemRec ) )
- return error;
+ free (buffer->alt_string);
+ buffer->alt_string = NULL;
}
}
buffer->allocated = new_allocated;
}
-
- return HB_Err_Ok;
}
static HB_Error
-hb_buffer_duplicate_out_buffer( HB_Buffer buffer )
+hb_buffer_duplicate_out_buffer (HB_Buffer buffer)
{
- if ( !buffer->alt_string )
- {
- HB_Error error;
-
- if ( ALLOC_ARRAY( buffer->alt_string, buffer->allocated, HB_GlyphItemRec ) )
- return error;
- }
+ if (!buffer->alt_string)
+ buffer->alt_string = malloc (buffer->allocated * sizeof (buffer->alt_string[0]));
buffer->out_string = buffer->alt_string;
- memcpy( buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]) );
+ memcpy (buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]));
buffer->separate_out = TRUE;
return HB_Err_Ok;
@@ -125,39 +113,36 @@
/* Public API */
-HB_Error
-hb_buffer_new( HB_Buffer *pbuffer )
+hb_buffer_t *
+hb_buffer_new (void)
{
- HB_Buffer buffer;
- HB_Error error;
-
- if ( ALLOC( buffer, sizeof( HB_BufferRec ) ) )
- return error;
+ hb_buffer_t *buffer;
+
+ buffer = malloc (sizeof (hb_buffer_t));
+ if (HB_UNLIKELY (!buffer))
+ return NULL;
buffer->allocated = 0;
buffer->in_string = NULL;
buffer->alt_string = NULL;
buffer->positions = NULL;
- hb_buffer_clear( buffer );
+ hb_buffer_clear (buffer);
- *pbuffer = buffer;
-
- return HB_Err_Ok;
+ return buffer;
}
void
-hb_buffer_free( HB_Buffer buffer )
+hb_buffer_free (HB_Buffer buffer)
{
- FREE( buffer->in_string );
- FREE( buffer->alt_string );
- buffer->out_string = NULL;
- FREE( buffer->positions );
- FREE( buffer );
+ free (buffer->in_string);
+ free (buffer->alt_string);
+ free (buffer->positions);
+ free (buffer);
}
void
-hb_buffer_clear( HB_Buffer buffer )
+hb_buffer_clear (HB_Buffer buffer)
{
buffer->in_length = 0;
buffer->out_length = 0;
@@ -168,18 +153,16 @@
buffer->max_ligID = 0;
}
-HB_Error
-hb_buffer_add_glyph( HB_Buffer buffer,
+void
+hb_buffer_add_glyph (HB_Buffer buffer,
HB_UInt glyph_index,
HB_UInt properties,
- HB_UInt cluster )
+ HB_UInt cluster)
{
HB_Error error;
HB_GlyphItem glyph;
- error = hb_buffer_ensure( buffer, buffer->in_length + 1 );
- if ( error )
- return error;
+ hb_buffer_ensure (buffer, buffer->in_length + 1);
glyph = &buffer->in_string[buffer->in_length];
glyph->gindex = glyph_index;
@@ -188,16 +171,14 @@
glyph->component = 0;
glyph->ligID = 0;
glyph->gproperty = HB_GLYPH_PROPERTY_UNKNOWN;
-
- buffer->in_length++;
- return HB_Err_Ok;
+ buffer->in_length++;
}
/* HarfBuzz-Internal API */
HB_INTERNAL void
-_hb_buffer_clear_output( HB_Buffer buffer )
+_hb_buffer_clear_output (HB_Buffer buffer)
{
buffer->out_length = 0;
buffer->out_pos = 0;
@@ -206,17 +187,12 @@
}
HB_INTERNAL HB_Error
-_hb_buffer_clear_positions( HB_Buffer buffer )
+_hb_buffer_clear_positions (HB_Buffer buffer)
{
_hb_buffer_clear_output (buffer);
- if ( !buffer->positions )
- {
- HB_Error error;
-
- if ( ALLOC_ARRAY( buffer->positions, buffer->allocated, HB_PositionRec ) )
- return error;
- }
+ if (!buffer->positions)
+ buffer->positions = malloc (buffer->allocated * sizeof (buffer->positions[0]));
memset (buffer->positions, 0, sizeof (buffer->positions[0]) * buffer->in_length);
@@ -224,13 +200,13 @@
}
HB_INTERNAL void
-_hb_buffer_swap( HB_Buffer buffer )
+_hb_buffer_swap (HB_Buffer buffer)
{
HB_GlyphItem tmp_string;
int tmp_length;
int tmp_pos;
- if ( buffer->separate_out )
+ if (buffer->separate_out)
{
tmp_string = buffer->in_string;
buffer->in_string = buffer->out_string;
@@ -267,37 +243,35 @@
The cluster value for the glyph at position buffer->in_pos is used
for all replacement glyphs */
HB_INTERNAL HB_Error
-_hb_buffer_add_output_glyphs( HB_Buffer buffer,
+_hb_buffer_add_output_glyphs (HB_Buffer buffer,
HB_UShort num_in,
HB_UShort num_out,
HB_UShort *glyph_data,
HB_UShort component,
- HB_UShort ligID )
+ HB_UShort ligID)
{
HB_Error error;
HB_UShort i;
HB_UInt properties;
HB_UInt cluster;
- error = hb_buffer_ensure( buffer, buffer->out_pos + num_out );
- if ( error )
- return error;
+ hb_buffer_ensure (buffer, buffer->out_pos + num_out);
- if ( !buffer->separate_out )
+ if (!buffer->separate_out)
{
- error = hb_buffer_duplicate_out_buffer( buffer );
- if ( error )
+ error = hb_buffer_duplicate_out_buffer (buffer);
+ if (error)
return error;
}
properties = buffer->in_string[buffer->in_pos].properties;
cluster = buffer->in_string[buffer->in_pos].cluster;
- if ( component == 0xFFFF )
+ if (component == 0xFFFF)
component = buffer->in_string[buffer->in_pos].component;
- if ( ligID == 0xFFFF )
+ if (ligID == 0xFFFF)
ligID = buffer->in_string[buffer->in_pos].ligID;
- for ( i = 0; i < num_out; i++ )
+ for (i = 0; i < num_out; i++)
{
HB_GlyphItem item = &buffer->out_string[buffer->out_pos + i];
@@ -318,27 +292,25 @@
}
HB_INTERNAL HB_Error
-_hb_buffer_add_output_glyph( HB_Buffer buffer,
+_hb_buffer_add_output_glyph (HB_Buffer buffer,
HB_UInt glyph_index,
HB_UShort component,
- HB_UShort ligID )
+ HB_UShort ligID)
{
HB_UShort glyph_data = glyph_index;
- return _hb_buffer_add_output_glyphs ( buffer, 1, 1,
- &glyph_data, component, ligID );
+ return _hb_buffer_add_output_glyphs (buffer, 1, 1,
+ &glyph_data, component, ligID);
}
HB_INTERNAL HB_Error
-_hb_buffer_next_glyph ( HB_Buffer buffer )
+_hb_buffer_next_glyph (HB_Buffer buffer)
{
HB_Error error;
- if ( buffer->separate_out )
+ if (buffer->separate_out)
{
- error = hb_buffer_ensure( buffer, buffer->out_pos + 1 );
- if ( error )
- return error;
+ hb_buffer_ensure (buffer, buffer->out_pos + 1);
buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos];
}
@@ -351,10 +323,10 @@
}
HB_INTERNAL HB_Error
-_hb_buffer_replace_glyph( HB_Buffer buffer,
- HB_UInt glyph_index )
+_hb_buffer_replace_glyph (HB_Buffer buffer,
+ HB_UInt glyph_index)
{
- if ( !buffer->separate_out )
+ if (!buffer->separate_out)
{
buffer->out_string[buffer->out_pos].gindex = glyph_index;
@@ -364,14 +336,14 @@
}
else
{
- return _hb_buffer_add_output_glyph( buffer, glyph_index, 0xFFFF, 0xFFFF );
+ return _hb_buffer_add_output_glyph (buffer, glyph_index, 0xFFFF, 0xFFFF);
}
return HB_Err_Ok;
}
HB_INTERNAL HB_UShort
-_hb_buffer_allocate_ligid( HB_Buffer buffer )
+_hb_buffer_allocate_ligid (HB_Buffer buffer)
{
return ++buffer->max_ligID;
}
diff --git a/src/harfbuzz-buffer.h b/src/harfbuzz-buffer.h
index b89b3c4..668753c 100644
--- a/src/harfbuzz-buffer.h
+++ b/src/harfbuzz-buffer.h
@@ -28,67 +28,67 @@
#ifndef HARFBUZZ_BUFFER_H
#define HARFBUZZ_BUFFER_H
-#include "harfbuzz-global.h"
+#include "hb-common.h"
-HB_BEGIN_HEADER
+HB_BEGIN_DECLS();
typedef struct HB_GlyphItemRec_ {
- HB_UInt gindex;
- HB_UInt properties;
- HB_UInt cluster;
- HB_UShort component;
- HB_UShort ligID;
- HB_UShort gproperty;
+ hb_codepoint_t gindex;
+ unsigned int properties;
+ unsigned int cluster;
+ unsigned short component;
+ unsigned short ligID;
+ unsigned short gproperty;
} HB_GlyphItemRec, *HB_GlyphItem;
typedef struct HB_PositionRec_ {
- HB_Fixed x_pos;
- HB_Fixed y_pos;
- HB_Fixed x_advance;
- HB_Fixed y_advance;
- HB_UShort back; /* number of glyphs to go back
- for drawing current glyph */
- HB_Bool new_advance; /* if set, the advance width values are
- absolute, i.e., they won't be
- added to the original glyph's value
- but rather replace them. */
- HB_Short cursive_chain; /* character to which this connects,
- may be positive or negative; used
- only internally */
+ hb_position_t x_pos;
+ hb_position_t y_pos;
+ hb_position_t x_advance;
+ hb_position_t y_advance;
+ unsigned short back; /* number of glyphs to go back
+ for drawing current glyph */
+ hb_bool_t new_advance; /* if set, the advance width values are
+ absolute, i.e., they won't be
+ added to the original glyph's value
+ but rather replace them. */
+ short cursive_chain; /* character to which this connects,
+ may be positive or negative; used
+ only internally */
} HB_PositionRec, *HB_Position;
-typedef struct HB_BufferRec_{
- HB_UInt allocated;
+typedef struct _hb_buffer_t {
+ unsigned int allocated;
- HB_UInt in_length;
- HB_UInt out_length;
- HB_UInt in_pos;
- HB_UInt out_pos;
+ unsigned int in_length;
+ unsigned int out_length;
+ unsigned int in_pos;
+ unsigned int out_pos;
- HB_Bool separate_out;
+ hb_bool_t separate_out;
HB_GlyphItem in_string;
HB_GlyphItem out_string;
HB_GlyphItem alt_string;
HB_Position positions;
- HB_UShort max_ligID;
-} HB_BufferRec, *HB_Buffer;
+ unsigned int max_ligID;
+} HB_BufferRec, *HB_Buffer, hb_buffer_t;
-HB_Error
-hb_buffer_new( HB_Buffer *buffer );
+hb_buffer_t *
+hb_buffer_new (void);
void
-hb_buffer_free( HB_Buffer buffer );
+hb_buffer_free (hb_buffer_t *buffer);
void
-hb_buffer_clear( HB_Buffer buffer );
+hb_buffer_clear (hb_buffer_t *buffer);
-HB_Error
-hb_buffer_add_glyph( HB_Buffer buffer,
- HB_UInt glyph_index,
- HB_UInt properties,
- HB_UInt cluster );
+void
+hb_buffer_add_glyph (hb_buffer_t *buffer,
+ hb_codepoint_t glyph_index,
+ unsigned int properties,
+ unsigned int cluster);
-HB_END_HEADER
+HB_END_DECLS();
#endif /* HARFBUZZ_BUFFER_H */
diff --git a/src/hb-ot-layout-private.h b/src/hb-ot-layout-private.h
index bc534d3..80c36b4 100644
--- a/src/hb-ot-layout-private.h
+++ b/src/hb-ot-layout-private.h
@@ -92,9 +92,9 @@
unsigned int *property);
/* XXX */
-HB_Error
-hb_buffer_ensure( HB_Buffer buffer,
- HB_UInt size );
+void
+hb_buffer_ensure (hb_buffer_t *buffer,
+ unsigned int size);
HB_END_DECLS();
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 3c1625c..5e3b483 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -582,16 +582,11 @@
static HB_Error
hb_buffer_duplicate_out_buffer( HB_Buffer buffer )
{
- if ( !buffer->alt_string )
- {
- HB_Error error;
-
- if ( ALLOC_ARRAY( buffer->alt_string, buffer->allocated, HB_GlyphItemRec ) )
- return error;
- }
+ if (!buffer->alt_string)
+ buffer->alt_string = (HB_GlyphItemRec_ *) malloc (buffer->allocated * sizeof (buffer->out_string[0]));
buffer->out_string = buffer->alt_string;
- memcpy( buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]) );
+ memcpy (buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]));
buffer->separate_out = TRUE;
return HB_Err_Ok;
@@ -599,6 +594,7 @@
+/* XXX */
HB_INTERNAL HB_Error
_hb_buffer_add_output_glyph_ids( HB_Buffer buffer,
HB_UShort num_in,
@@ -612,9 +608,8 @@
HB_UInt properties;
HB_UInt cluster;
- error = hb_buffer_ensure( buffer, buffer->out_pos + num_out );
- if ( error )
- return error;
+ hb_buffer_ensure( buffer, buffer->out_pos + num_out );
+ /* XXX */
if ( !buffer->separate_out )
{
diff --git a/src/hb-ot-layout.h b/src/hb-ot-layout.h
index 148c609..6aa05fc 100644
--- a/src/hb-ot-layout.h
+++ b/src/hb-ot-layout.h
@@ -28,6 +28,7 @@
#define HB_OT_LAYOUT_H
#include "hb-common.h"
+#include "harfbuzz-buffer.h"
HB_BEGIN_DECLS();