Prechádzať zdrojové kódy

This closes #677 and closes #679, fix panic when enabling compiler inline flags

xuri 5 rokov pred
rodič
commit
843bd24e56
3 zmenil súbory, kde vykonal 5 pridanie a 12 odobranie
  1. 2 9
      lib.go
  2. 2 2
      sheet.go
  3. 1 1
      stream.go

+ 2 - 9
lib.go

@@ -20,7 +20,6 @@ import (
 	"io"
 	"strconv"
 	"strings"
-	"unsafe"
 )
 
 // ReadZipReader can be used to read the spreadsheet in memory without touching the
@@ -251,17 +250,11 @@ func namespaceStrictToTransitional(content []byte) []byte {
 		StrictNameSpaceSpreadSheet:       NameSpaceSpreadSheet.Value,
 	}
 	for s, n := range namespaceTranslationDic {
-		content = bytesReplace(content, stringToBytes(s), stringToBytes(n), -1)
+		content = bytesReplace(content, []byte(s), []byte(n), -1)
 	}
 	return content
 }
 
-// stringToBytes cast a string to bytes pointer and assign the value of this
-// pointer.
-func stringToBytes(s string) []byte {
-	return *(*[]byte)(unsafe.Pointer(&s))
-}
-
 // bytesReplace replace old bytes with given new.
 func bytesReplace(s, old, new []byte, n int) []byte {
 	if n == 0 {
@@ -366,7 +359,7 @@ func getXMLNamespace(space string, attr []xml.Attr) string {
 // replaceNameSpaceBytes provides a function to replace the XML root element
 // attribute by the given component part path and XML content.
 func (f *File) replaceNameSpaceBytes(path string, contentMarshal []byte) []byte {
-	var oldXmlns = stringToBytes(`xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">`)
+	var oldXmlns = []byte(`xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">`)
 	var newXmlns = []byte(templateNamespaceIDMap)
 	if attr, ok := f.xmlAttr[path]; ok {
 		newXmlns = []byte(genXMLNamespace(attr))

+ 2 - 2
sheet.go

@@ -213,8 +213,8 @@ func (f *File) setAppXML() {
 // strict requirements about the structure of the input XML. This function is
 // a horrible hack to fix that after the XML marshalling is completed.
 func replaceRelationshipsBytes(content []byte) []byte {
-	oldXmlns := stringToBytes(`xmlns:relationships="http://schemas.openxmlformats.org/officeDocument/2006/relationships" relationships`)
-	newXmlns := stringToBytes("r")
+	oldXmlns := []byte(`xmlns:relationships="http://schemas.openxmlformats.org/officeDocument/2006/relationships" relationships`)
+	newXmlns := []byte("r")
 	return bytesReplace(content, oldXmlns, newXmlns, -1)
 }
 

+ 1 - 1
stream.go

@@ -367,7 +367,7 @@ func writeCell(buf *bufferedWriter, c xlsxC) {
 	buf.WriteString(`>`)
 	if c.V != "" {
 		buf.WriteString(`<v>`)
-		xml.EscapeText(buf, stringToBytes(c.V))
+		xml.EscapeText(buf, []byte(c.V))
 		buf.WriteString(`</v>`)
 	}
 	buf.WriteString(`</c>`)