diff options
| author | Paul Montag <pmontag@iseeme.com> | 2018-11-05 15:50:58 -0600 | 
|---|---|---|
| committer | Paul Montag <pmontag@iseeme.com> | 2018-11-05 15:50:58 -0600 | 
| commit | 6993fe6ea4223dca30d0cae9fa0bd9a3cdfdb12d (patch) | |
| tree | 49ac575f35d488070e627e99dbf5ebe07b10de8c | |
| parent | bb287515d3b5c5b4ca7665a64a9224e8b6038804 (diff) | |
fixed pointer values when mutltiple templates are used
| -rw-r--r-- | template_impl.go | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/template_impl.go b/template_impl.go index 9e5d496..b1b2382 100644 --- a/template_impl.go +++ b/template_impl.go @@ -3,6 +3,7 @@ package gofpdf  import (  	"bytes"  	"encoding/gob" +	"reflect"  )  /* @@ -136,9 +137,26 @@ func (t *FpdfTpl) GobDecode(buf []byte) error {  		}  	} +	t.relinkPointers(t.images) +  	return err  } +func (t *FpdfTpl) relinkPointers(images map[string]*ImageInfoType) { +	for gKey, _ := range images { +		for key, _ := range t.images { +			if reflect.DeepEqual(t.images[key], images[gKey]) { +				t.images[key] = images[gKey] +			} +		} +	} + +	for x := 0; x < len(t.templates); x++ { +		innerT := t.templates[x].(*FpdfTpl) +		innerT.relinkPointers(t.images) +	} +} +  // Tpl is an Fpdf used for writing a template. It has most of the facilities of  // an Fpdf, but cannot add more pages. Tpl is used directly only during the  // limited time a template is writable. | 
