summaryrefslogtreecommitdiff
path: root/font.go
diff options
context:
space:
mode:
authordchapes <dchapes@users.noreply.github.com>2017-02-11 14:45:20 -0500
committerKurt Jung <kurt.w.jung@gmail.com>2017-02-11 14:45:20 -0500
commit6ac7d2caee89cdfdb4f6c273a88d1173d234c21b (patch)
tree755bc42811eaa0654b1550a09975013c106c0ea5 /font.go
parent328db88096525175c22c4337b54cc9d809332c4a (diff)
Accept interfaces where appropriate. (#103)
* Accept interfaces where appropriate. `Fpdf.RawWriteBuf` only needs an `io.Reader`, it doesn't have to be a `bytes.Buffer`. The only reason I can see not to do this is to avoid the interface "boxing" if the caller is actually using a `bytes.Buffer`; however, since eventually this gets into `binary.Read` which takes an `io.Reader` the boxing will happen anyway (and possibly repeatedly if `readByte` gets called a number of times; I didn't bother to check). * Also use interface for segmentRead * Use read-only bytes.Reader instead of bytes.Buffer where appropriate.
Diffstat (limited to 'font.go')
-rw-r--r--font.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/font.go b/font.go
index 35f59f1..4d151c2 100644
--- a/font.go
+++ b/font.go
@@ -144,22 +144,22 @@ type segmentType struct {
data []byte
}
-func segmentRead(f *os.File) (s segmentType, err error) {
- if err = binary.Read(f, binary.LittleEndian, &s.marker); err != nil {
+func segmentRead(r io.Reader) (s segmentType, err error) {
+ if err = binary.Read(r, binary.LittleEndian, &s.marker); err != nil {
return
}
if s.marker != 128 {
err = fmt.Errorf("font file is not a valid binary Type1")
return
}
- if err = binary.Read(f, binary.LittleEndian, &s.tp); err != nil {
+ if err = binary.Read(r, binary.LittleEndian, &s.tp); err != nil {
return
}
- if err = binary.Read(f, binary.LittleEndian, &s.size); err != nil {
+ if err = binary.Read(r, binary.LittleEndian, &s.size); err != nil {
return
}
s.data = make([]byte, s.size)
- _, err = f.Read(s.data)
+ _, err = r.Read(s.data)
return
}