code: private int[] getStyle(int index) {
          if (m_styleOffsets==null || m_styles==null ||
                  index>=m_styleOffsets.length)
          {
              return null;
          }
          int offset=m_styleOffsets[index]/4;
          int style[];
          {
              int count=0;
              for (int i=offset;i<m_styles.length;++i) {
                  if (m_styles[i]==-1) {
                      break;
                  }
                  count+=1;
              }
              if (count==0 || (count%3)!=0) {
                  return null;
              }
              style=new int[count];
          }
          for (int i=offset,j=0;i<m_styles.length;) {
              if (m_styles[i]==-1) {
                  break;
              }
              style[j++]=m_styles[i++];
          }
          return style;
      }
docs: Returns style information - array of int triplets,
  where in each triplet:
  * first int is index of tag name ('b','i', etc.)
  * second int is tag start index in string
  * third int is tag end index in string