ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtfont.C
(Generate patch)

Comparing rxvt-unicode/src/rxvtfont.C (file contents):
Revision 1.186 by root, Wed Jan 25 14:33:42 2012 UTC vs.
Revision 1.187 by root, Thu Jan 26 13:07:22 2012 UTC

1785 while (hi >= fmap.size ()) 1785 while (hi >= fmap.size ())
1786 fmap.push_back (0); 1786 fmap.push_back (0);
1787 1787
1788 if (!fmap[hi]) 1788 if (!fmap[hi])
1789 { 1789 {
1790 // C++ has no separate new and new [] - we need the "new" form, 1790 // we use [1] here because C has no separate new and new [] forms,
1791 // just like the syntax implies, but since pagemap is char[], 1791 // and pagemap is char[256], so new incorrectly assumes we want to
1792 // C++ chooses the wrong new, so we need the cast and delete []. 1792 // allocate an array of chars instead of a single pagemap.
1793 fmap[hi] = (pagemap *)new pagemap; 1793 // we can either cast the resulting pointer to (pagemap *) or
1794 // allocate an array of pagemaps, returning a pointer to the first member
1795 // this is no extra overhead, as new even allocates an array for
1796 // "new pagemap"
1797 fmap[hi] = new pagemap[1];
1794 memset (fmap[hi], 0xff, sizeof (pagemap)); 1798 memset (fmap[hi], 0xff, sizeof (pagemap));
1795 } 1799 }
1796 1800
1797 (*fmap[hi])[unicode & 0xff] = i; 1801 (*fmap[hi])[unicode & 0xff] = i;
1798 } 1802 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines