Skip to content

Commit

Permalink
[api-minor] Refactor/simplify the PDFObject class
Browse files Browse the repository at this point in the history
First of all, note how there's currently *two* methods for checking if a certain object exists, which seems completely unwarranted.
Furthermore, the rarely used `getData` method was removed and its only callsite changed to use a combination of `PDFObjects.{has, get}` instead.
Finally, the methods were rearranged slightly, to bring the most important ones (for an API user) to the top of the class.
  • Loading branch information
Snuffleupagus committed Nov 8, 2018
1 parent d32321d commit 60da2d8
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 25 deletions.
5 changes: 3 additions & 2 deletions src/display/annotation_layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -447,8 +447,9 @@ class TextWidgetAnnotationElement extends WidgetAnnotationElement {
element.style.display = 'table-cell';

let font = null;
if (this.data.fontRefName) {
font = this.page.commonObjs.getData(this.data.fontRefName);
if (this.data.fontRefName &&
this.page.commonObjs.has(this.data.fontRefName)) {
font = this.page.commonObjs.get(this.data.fontRefName);
}
this._setTextStyle(element, font);
}
Expand Down
29 changes: 7 additions & 22 deletions src/display/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -1885,7 +1885,7 @@ class WorkerTransport {
}

const [id, type, exportedData] = data;
if (this.commonObjs.hasData(id)) {
if (this.commonObjs.has(id)) {
return;
}

Expand Down Expand Up @@ -1937,7 +1937,7 @@ class WorkerTransport {

const [id, pageIndex, type, imageData] = data;
const pageProxy = this.pageCache[pageIndex];
if (pageProxy.objs.hasData(id)) {
if (pageProxy.objs.has(id)) {
return;
}

Expand Down Expand Up @@ -2256,6 +2256,11 @@ class PDFObjects {
return obj.data;
}

has(objId) {
const obj = this._objs[objId];
return (obj ? obj.resolved : false);
}

/**
* Resolves the object `objId` with optional `data`.
*/
Expand All @@ -2267,26 +2272,6 @@ class PDFObjects {
obj.capability.resolve(data);
}

isResolved(objId) {
const obj = this._objs[objId];
return (obj ? obj.resolved : false);
}

hasData(objId) {
return this.isResolved(objId);
}

/**
* Returns the data of `objId` if the object exists, null otherwise.
*/
getData(objId) {
const obj = this._objs[objId];
if (!obj || !obj.resolved) {
return null;
}
return obj.data;
}

clear() {
this._objs = Object.create(null);
}
Expand Down
2 changes: 1 addition & 1 deletion src/display/canvas.js
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {

// If the promise isn't resolved yet, add the continueCallback
// to the promise and bail out.
if (!objsPool.isResolved(depObjId)) {
if (!objsPool.has(depObjId)) {
objsPool.get(depObjId, continueCallback);
return i;
}
Expand Down

0 comments on commit 60da2d8

Please sign in to comment.