Commit 06b28409c764dd2a29d42b670c8693e7781e84aa

henry 2002-08-27T07:13:36

Inlined the whole class

diff --git a/include/FTCharToGlyphIndexMap.h b/include/FTCharToGlyphIndexMap.h
index f6aa8c7..8dbb82e 100644
--- a/include/FTCharToGlyphIndexMap.h
+++ b/include/FTCharToGlyphIndexMap.h
@@ -1,25 +1,25 @@
 #ifndef    __FTCharToGlyphIndexMap__
 #define    __FTCharToGlyphIndexMap__
 
-/*
-  Provides a non-STL alternative to the STL map<unsigned long, unsigned long>
-  which maps character codes to glyph indices inside FTCharmap.
-  
-  Implementation:
-    - NumberOfBuckets buckets are considered.
-    - Each bucket has BucketSize entries.
-    - When the glyph index for the character code C has to be stored, the 
-      bucket this character belongs to is found using 'C div BucketSize'. 
-      If this bucket has not been allocated yet, do it now.
-      The entry in the bucked is found using 'C mod BucketSize'. 
-      If it is set to IndexNotFound, then the glyph entry has not been set.
-    - Try to mimic the calls made to the STL map API.
-
-  Caveats:
-    - The glyph index is now a signed long instead of unsigned long, so
-      the special value IndexNotFound (= -1) can be used to specify that the 
-      glyph index has not been stored yet.
-*/
+/**
+ * Provides a non-STL alternative to the STL map<unsigned long, unsigned long>
+ * which maps character codes to glyph indices inside FTCharmap.
+ * 
+ * Implementation:
+ *   - NumberOfBuckets buckets are considered.
+ *   - Each bucket has BucketSize entries.
+ *   - When the glyph index for the character code C has to be stored, the 
+ *     bucket this character belongs to is found using 'C div BucketSize'. 
+ *     If this bucket has not been allocated yet, do it now.
+ *     The entry in the bucked is found using 'C mod BucketSize'. 
+ *     If it is set to IndexNotFound, then the glyph entry has not been set.
+ *   - Try to mimic the calls made to the STL map API.
+ *
+ * Caveats:
+ *   - The glyph index is now a signed long instead of unsigned long, so
+ *     the special value IndexNotFound (= -1) can be used to specify that the 
+ *     glyph index has not been stored yet.
+ */
 
 #include <cstdlib>
 
@@ -39,111 +39,93 @@ class FTGL_EXPORT FTCharToGlyphIndexMap
             IndexNotFound = -1
         };
 
-        FTCharToGlyphIndexMap();
-
-        virtual ~FTCharToGlyphIndexMap();
-  
-        void clear();
-
-        const GlyphIndex* find( CharacterCode c);
+        FTCharToGlyphIndexMap()
+        {
+            this->Indices = 0;
+        }
 
-        void insert( CharacterCode c, GlyphIndex g);
+        virtual ~FTCharToGlyphIndexMap()
+        {
+            if( this->Indices)
+            {
+                // Free all buckets
+                this->clear();
+        
+                // Free main structure
+                delete [] this->Indices;
+                this->Indices = 0;
+            }
+        }
   
-    private:
-        GlyphIndex** Indices;
-};
-
-
-inline FTCharToGlyphIndexMap::FTCharToGlyphIndexMap()
-{
-    this->Indices = 0;
-}
-
-
-inline FTCharToGlyphIndexMap::~FTCharToGlyphIndexMap()
-{
-    if( this->Indices)
-    {
-        // Free all buckets
-        this->clear();
-
-        // Free main structure
-        delete [] this->Indices;
-        this->Indices = 0;
-    }
-}
-
-
-// Free all buckets
-inline void FTCharToGlyphIndexMap::clear()
-{
-    if(this->Indices)
-    {
-        for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
+        void clear()
         {
-            if( this->Indices[i])
+            if(this->Indices)
             {
-                delete [] this->Indices[i];
-                this->Indices[i] = 0;
+                for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
+                {
+                    if( this->Indices[i])
+                    {
+                        delete [] this->Indices[i];
+                        this->Indices[i] = 0;
+                    }
+                }
             }
         }
-    }
-}
-
-
-// Find index corresponding to char code
-inline const FTCharToGlyphIndexMap::GlyphIndex* FTCharToGlyphIndexMap::find(FTCharToGlyphIndexMap::CharacterCode c)
-{
-    if( !this->Indices)
-    {
-        return 0;
-    }
 
-    // Find position of char code in buckets
-    div_t pos = div( c, FTCharToGlyphIndexMap::BucketSize);
-
-    if( !this->Indices[pos.quot])
-    {
-        return 0;
-    }
-
-    const FTCharToGlyphIndexMap::GlyphIndex *ptr = &this->Indices[pos.quot][pos.rem];
-    if( *ptr == FTCharToGlyphIndexMap::IndexNotFound)
-    {
-        return 0;
-    }
-
-    return ptr;
-}
-
-
-// Insert index corresponding to char code
-inline void FTCharToGlyphIndexMap::insert(FTCharToGlyphIndexMap::CharacterCode c,
-                                      FTCharToGlyphIndexMap::GlyphIndex g)
-{
-    if( !this->Indices)
-    {
-        this->Indices = new GlyphIndex* [FTCharToGlyphIndexMap::NumberOfBuckets];
-        for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
+        const GlyphIndex* find( CharacterCode c)
         {
-            this->Indices[i] = 0;
+            if( !this->Indices)
+            {
+                return 0;
+            }
+        
+            // Find position of char code in buckets
+            div_t pos = div( c, FTCharToGlyphIndexMap::BucketSize);
+        
+            if( !this->Indices[pos.quot])
+            {
+                return 0;
+            }
+        
+            const FTCharToGlyphIndexMap::GlyphIndex *ptr = &this->Indices[pos.quot][pos.rem];
+            if( *ptr == FTCharToGlyphIndexMap::IndexNotFound)
+            {
+                return 0;
+            }
+        
+            return ptr;
         }
-    }
 
-    // Find position of char code in buckets
-    div_t pos = div(c, FTCharToGlyphIndexMap::BucketSize);
-
-    // Allocate bucket if does not exist yet
-    if( !this->Indices[pos.quot])
-    {
-        this->Indices[pos.quot] = new GlyphIndex [FTCharToGlyphIndexMap::BucketSize];
-        for( int i = 0; i < FTCharToGlyphIndexMap::BucketSize; i++)
+        void insert( CharacterCode c, GlyphIndex g)
         {
-            this->Indices[pos.quot][i] = FTCharToGlyphIndexMap::IndexNotFound;
+            if( !this->Indices)
+            {
+                this->Indices = new GlyphIndex* [FTCharToGlyphIndexMap::NumberOfBuckets];
+                for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
+                {
+                    this->Indices[i] = 0;
+                }
+            }
+        
+            // Find position of char code in buckets
+            div_t pos = div(c, FTCharToGlyphIndexMap::BucketSize);
+        
+            // Allocate bucket if does not exist yet
+            if( !this->Indices[pos.quot])
+            {
+                this->Indices[pos.quot] = new GlyphIndex [FTCharToGlyphIndexMap::BucketSize];
+                for( int i = 0; i < FTCharToGlyphIndexMap::BucketSize; i++)
+                {
+                    this->Indices[pos.quot][i] = FTCharToGlyphIndexMap::IndexNotFound;
+                }
+            }
+          
+            this->Indices[pos.quot][pos.rem] = g;
         }
-    }
   
-    this->Indices[pos.quot][pos.rem] = g;
-}
+    private:
+        GlyphIndex** Indices;
+};
+
 
 #endif  //  __FTCharToGlyphIndexMap__