Skip to content

Commit 93c72b4

Browse files
committed
This optimizes internal functions signature and mutex declarations
1 parent 787453c commit 93c72b4

20 files changed

+168
-168
lines changed

adjust.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ func (f *File) adjustHelper(sheet string, dir adjustDirection, num, offset int)
6060
if err = f.adjustCalcChain(dir, num, offset, sheetID); err != nil {
6161
return err
6262
}
63-
checkSheet(ws)
64-
_ = checkRow(ws)
63+
ws.checkSheet()
64+
_ = ws.checkRow()
6565

6666
if ws.MergeCells != nil && len(ws.MergeCells.Cells) == 0 {
6767
ws.MergeCells = nil

calc.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ var (
215215

216216
// calcContext defines the formula execution context.
217217
type calcContext struct {
218-
sync.Mutex
218+
mu sync.Mutex
219219
entry string
220220
maxCalcIterations uint
221221
iterations map[string]uint
@@ -1553,19 +1553,19 @@ func (f *File) cellResolver(ctx *calcContext, sheet, cell string) (formulaArg, e
15531553
)
15541554
ref := fmt.Sprintf("%s!%s", sheet, cell)
15551555
if formula, _ := f.GetCellFormula(sheet, cell); len(formula) != 0 {
1556-
ctx.Lock()
1556+
ctx.mu.Lock()
15571557
if ctx.entry != ref {
15581558
if ctx.iterations[ref] <= f.options.MaxCalcIterations {
15591559
ctx.iterations[ref]++
1560-
ctx.Unlock()
1560+
ctx.mu.Unlock()
15611561
arg, _ = f.calcCellValue(ctx, sheet, cell)
15621562
ctx.iterationsCache[ref] = arg
15631563
return arg, nil
15641564
}
1565-
ctx.Unlock()
1565+
ctx.mu.Unlock()
15661566
return ctx.iterationsCache[ref], nil
15671567
}
1568-
ctx.Unlock()
1568+
ctx.mu.Unlock()
15691569
}
15701570
if value, err = f.GetCellValue(sheet, cell, Options{RawCellValue: true}); err != nil {
15711571
return arg, err

calcchain.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ func (f *File) deleteCalcChain(index int, cell string) error {
5858
if err != nil {
5959
return err
6060
}
61-
content.Lock()
62-
defer content.Unlock()
61+
content.mu.Lock()
62+
defer content.mu.Unlock()
6363
for k, v := range content.Overrides {
6464
if v.PartName == "/xl/calcChain.xml" {
6565
content.Overrides = append(content.Overrides[:k], content.Overrides[k+1:]...)

cell.go

+46-46
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,13 @@ func (f *File) setCellTimeFunc(sheet, cell string, value time.Time) error {
236236
if err != nil {
237237
return err
238238
}
239-
c, col, row, err := f.prepareCell(ws, cell)
239+
c, col, row, err := ws.prepareCell(cell)
240240
if err != nil {
241241
return err
242242
}
243-
ws.Lock()
244-
c.S = f.prepareCellStyle(ws, col, row, c.S)
245-
ws.Unlock()
243+
ws.mu.Lock()
244+
c.S = ws.prepareCellStyle(col, row, c.S)
245+
ws.mu.Unlock()
246246
var date1904, isNum bool
247247
wb, err := f.workbookReader()
248248
if err != nil {
@@ -292,13 +292,13 @@ func (f *File) SetCellInt(sheet, cell string, value int) error {
292292
if err != nil {
293293
return err
294294
}
295-
c, col, row, err := f.prepareCell(ws, cell)
295+
c, col, row, err := ws.prepareCell(cell)
296296
if err != nil {
297297
return err
298298
}
299-
ws.Lock()
300-
defer ws.Unlock()
301-
c.S = f.prepareCellStyle(ws, col, row, c.S)
299+
ws.mu.Lock()
300+
defer ws.mu.Unlock()
301+
c.S = ws.prepareCellStyle(col, row, c.S)
302302
c.T, c.V = setCellInt(value)
303303
c.IS = nil
304304
return f.removeFormula(c, ws, sheet)
@@ -318,13 +318,13 @@ func (f *File) SetCellBool(sheet, cell string, value bool) error {
318318
if err != nil {
319319
return err
320320
}
321-
c, col, row, err := f.prepareCell(ws, cell)
321+
c, col, row, err := ws.prepareCell(cell)
322322
if err != nil {
323323
return err
324324
}
325-
ws.Lock()
326-
defer ws.Unlock()
327-
c.S = f.prepareCellStyle(ws, col, row, c.S)
325+
ws.mu.Lock()
326+
defer ws.mu.Unlock()
327+
c.S = ws.prepareCellStyle(col, row, c.S)
328328
c.T, c.V = setCellBool(value)
329329
c.IS = nil
330330
return f.removeFormula(c, ws, sheet)
@@ -355,13 +355,13 @@ func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSiz
355355
if err != nil {
356356
return err
357357
}
358-
c, col, row, err := f.prepareCell(ws, cell)
358+
c, col, row, err := ws.prepareCell(cell)
359359
if err != nil {
360360
return err
361361
}
362-
ws.Lock()
363-
defer ws.Unlock()
364-
c.S = f.prepareCellStyle(ws, col, row, c.S)
362+
ws.mu.Lock()
363+
defer ws.mu.Unlock()
364+
c.S = ws.prepareCellStyle(col, row, c.S)
365365
c.T, c.V = setCellFloat(value, precision, bitSize)
366366
c.IS = nil
367367
return f.removeFormula(c, ws, sheet)
@@ -381,13 +381,13 @@ func (f *File) SetCellStr(sheet, cell, value string) error {
381381
if err != nil {
382382
return err
383383
}
384-
c, col, row, err := f.prepareCell(ws, cell)
384+
c, col, row, err := ws.prepareCell(cell)
385385
if err != nil {
386386
return err
387387
}
388-
ws.Lock()
389-
defer ws.Unlock()
390-
c.S = f.prepareCellStyle(ws, col, row, c.S)
388+
ws.mu.Lock()
389+
defer ws.mu.Unlock()
390+
c.S = ws.prepareCellStyle(col, row, c.S)
391391
if c.T, c.V, err = f.setCellString(value); err != nil {
392392
return err
393393
}
@@ -413,8 +413,8 @@ func (f *File) setCellString(value string) (t, v string, err error) {
413413
// sharedStringsLoader load shared string table from system temporary file to
414414
// memory, and reset shared string table for reader.
415415
func (f *File) sharedStringsLoader() (err error) {
416-
f.Lock()
417-
defer f.Unlock()
416+
f.mu.Lock()
417+
defer f.mu.Unlock()
418418
if path, ok := f.tempFiles.Load(defaultXMLPathSharedStrings); ok {
419419
f.Pkg.Store(defaultXMLPathSharedStrings, f.readBytes(defaultXMLPathSharedStrings))
420420
f.tempFiles.Delete(defaultXMLPathSharedStrings)
@@ -443,8 +443,8 @@ func (f *File) setSharedString(val string) (int, error) {
443443
if err != nil {
444444
return 0, err
445445
}
446-
f.Lock()
447-
defer f.Unlock()
446+
f.mu.Lock()
447+
defer f.mu.Unlock()
448448
if i, ok := f.sharedStringsMap[val]; ok {
449449
return i, nil
450450
}
@@ -558,8 +558,8 @@ func (c *xlsxC) getCellDate(f *File, raw bool) (string, error) {
558558
// intended to be used with for range on rows an argument with the spreadsheet
559559
// opened file.
560560
func (c *xlsxC) getValueFrom(f *File, d *xlsxSST, raw bool) (string, error) {
561-
f.Lock()
562-
defer f.Unlock()
561+
f.mu.Lock()
562+
defer f.mu.Unlock()
563563
switch c.T {
564564
case "b":
565565
return c.getCellBool(f, raw)
@@ -600,13 +600,13 @@ func (f *File) SetCellDefault(sheet, cell, value string) error {
600600
if err != nil {
601601
return err
602602
}
603-
c, col, row, err := f.prepareCell(ws, cell)
603+
c, col, row, err := ws.prepareCell(cell)
604604
if err != nil {
605605
return err
606606
}
607-
ws.Lock()
608-
defer ws.Unlock()
609-
c.S = f.prepareCellStyle(ws, col, row, c.S)
607+
ws.mu.Lock()
608+
defer ws.mu.Unlock()
609+
c.S = ws.prepareCellStyle(col, row, c.S)
610610
c.setCellDefault(value)
611611
return f.removeFormula(c, ws, sheet)
612612
}
@@ -718,7 +718,7 @@ func (f *File) SetCellFormula(sheet, cell, formula string, opts ...FormulaOpts)
718718
if err != nil {
719719
return err
720720
}
721-
c, _, _, err := f.prepareCell(ws, cell)
721+
c, _, _, err := ws.prepareCell(cell)
722722
if err != nil {
723723
return err
724724
}
@@ -763,7 +763,7 @@ func (ws *xlsxWorksheet) setSharedFormula(ref string) error {
763763
cnt := ws.countSharedFormula()
764764
for c := coordinates[0]; c <= coordinates[2]; c++ {
765765
for r := coordinates[1]; r <= coordinates[3]; r++ {
766-
prepareSheetXML(ws, c, r)
766+
ws.prepareSheetXML(c, r)
767767
cell := &ws.SheetData.Row[r-1].C[c-1]
768768
if cell.F == nil {
769769
cell.F = &xlsxF{}
@@ -867,7 +867,7 @@ func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...Hype
867867
if err != nil {
868868
return err
869869
}
870-
if cell, err = f.mergeCellsParser(ws, cell); err != nil {
870+
if cell, err = ws.mergeCellsParser(cell); err != nil {
871871
return err
872872
}
873873

@@ -944,7 +944,7 @@ func (f *File) GetCellRichText(sheet, cell string) (runs []RichTextRun, err erro
944944
if err != nil {
945945
return
946946
}
947-
c, _, _, err := f.prepareCell(ws, cell)
947+
c, _, _, err := ws.prepareCell(cell)
948948
if err != nil {
949949
return
950950
}
@@ -1171,14 +1171,14 @@ func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error {
11711171
if err != nil {
11721172
return err
11731173
}
1174-
c, col, row, err := f.prepareCell(ws, cell)
1174+
c, col, row, err := ws.prepareCell(cell)
11751175
if err != nil {
11761176
return err
11771177
}
11781178
if err := f.sharedStringsLoader(); err != nil {
11791179
return err
11801180
}
1181-
c.S = f.prepareCellStyle(ws, col, row, c.S)
1181+
c.S = ws.prepareCellStyle(col, row, c.S)
11821182
si := xlsxSI{}
11831183
sst, err := f.sharedStringsReader()
11841184
if err != nil {
@@ -1252,9 +1252,9 @@ func (f *File) setSheetCells(sheet, cell string, slice interface{}, dir adjustDi
12521252
}
12531253

12541254
// getCellInfo does common preparation for all set cell value functions.
1255-
func (f *File) prepareCell(ws *xlsxWorksheet, cell string) (*xlsxC, int, int, error) {
1255+
func (ws *xlsxWorksheet) prepareCell(cell string) (*xlsxC, int, int, error) {
12561256
var err error
1257-
cell, err = f.mergeCellsParser(ws, cell)
1257+
cell, err = ws.mergeCellsParser(cell)
12581258
if err != nil {
12591259
return nil, 0, 0, err
12601260
}
@@ -1263,9 +1263,9 @@ func (f *File) prepareCell(ws *xlsxWorksheet, cell string) (*xlsxC, int, int, er
12631263
return nil, 0, 0, err
12641264
}
12651265

1266-
prepareSheetXML(ws, col, row)
1267-
ws.Lock()
1268-
defer ws.Unlock()
1266+
ws.prepareSheetXML(col, row)
1267+
ws.mu.Lock()
1268+
defer ws.mu.Unlock()
12691269
return &ws.SheetData.Row[row-1].C[col-1], col, row, err
12701270
}
12711271

@@ -1277,7 +1277,7 @@ func (f *File) getCellStringFunc(sheet, cell string, fn func(x *xlsxWorksheet, c
12771277
if err != nil {
12781278
return "", err
12791279
}
1280-
cell, err = f.mergeCellsParser(ws, cell)
1280+
cell, err = ws.mergeCellsParser(cell)
12811281
if err != nil {
12821282
return "", err
12831283
}
@@ -1286,8 +1286,8 @@ func (f *File) getCellStringFunc(sheet, cell string, fn func(x *xlsxWorksheet, c
12861286
return "", err
12871287
}
12881288

1289-
ws.Lock()
1290-
defer ws.Unlock()
1289+
ws.mu.Lock()
1290+
defer ws.mu.Unlock()
12911291

12921292
lastRowNum := 0
12931293
if l := len(ws.SheetData.Row); l > 0 {
@@ -1366,7 +1366,7 @@ func (f *File) formattedValue(c *xlsxC, raw bool, cellType CellType) (string, er
13661366

13671367
// prepareCellStyle provides a function to prepare style index of cell in
13681368
// worksheet by given column index and style index.
1369-
func (f *File) prepareCellStyle(ws *xlsxWorksheet, col, row, style int) int {
1369+
func (ws *xlsxWorksheet) prepareCellStyle(col, row, style int) int {
13701370
if style != 0 {
13711371
return style
13721372
}
@@ -1387,7 +1387,7 @@ func (f *File) prepareCellStyle(ws *xlsxWorksheet, col, row, style int) int {
13871387

13881388
// mergeCellsParser provides a function to check merged cells in worksheet by
13891389
// given cell reference.
1390-
func (f *File) mergeCellsParser(ws *xlsxWorksheet, cell string) (string, error) {
1390+
func (ws *xlsxWorksheet) mergeCellsParser(cell string) (string, error) {
13911391
cell = strings.ToUpper(cell)
13921392
col, row, err := CellNameToCoordinates(cell)
13931393
if err != nil {

0 commit comments

Comments
 (0)