mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-25 09:38:06 +02:00
Re-factor the handling of *empty* Name
-instances (PR 13612 follow-up)
When working on PR 13612, I mostly prioritized a simple solution that didn't require touching a lot of code. However, while working on PR 13735 I started to realize that the static `Name.empty` construction really wasn't a good idea. In particular, having a special `Name`-instance where the `name`-property isn't actually a String is confusing (to put it mildly) and can easily lead to issues elsewhere. The only reason for not simply allowing the `name`-property to be an *empty* string, in PR 13612, was to avoid having to touch a lot of existing code. However, it turns out that this is only limited to a few methods in the `PartialEvaluator` and a few of the `BaseLocalCache`-implementations, all of which can be easily re-factored to handle *empty* `Name`-instances. All-in-all, I think that this patch is even an *overall* improvement since we're now validating (what should always be) `Name`-data better in the `PartialEvaluator`. This is what I ought to have done from the start, sorry about the code churn here!
This commit is contained in:
parent
64f86de5cb
commit
3838c4e27c
5 changed files with 39 additions and 21 deletions
|
@ -47,7 +47,7 @@ class BaseLocalCache {
|
|||
|
||||
class LocalImageCache extends BaseLocalCache {
|
||||
set(name, ref = null, data) {
|
||||
if (!name) {
|
||||
if (typeof name !== "string") {
|
||||
throw new Error('LocalImageCache.set - expected "name" argument.');
|
||||
}
|
||||
if (ref) {
|
||||
|
@ -68,7 +68,7 @@ class LocalImageCache extends BaseLocalCache {
|
|||
|
||||
class LocalColorSpaceCache extends BaseLocalCache {
|
||||
set(name = null, ref = null, data) {
|
||||
if (!name && !ref) {
|
||||
if (typeof name !== "string" && !ref) {
|
||||
throw new Error(
|
||||
'LocalColorSpaceCache.set - expected "name" and/or "ref" argument.'
|
||||
);
|
||||
|
@ -77,7 +77,7 @@ class LocalColorSpaceCache extends BaseLocalCache {
|
|||
if (this._imageCache.has(ref)) {
|
||||
return;
|
||||
}
|
||||
if (name) {
|
||||
if (name !== null) {
|
||||
// Optional when `ref` is defined.
|
||||
this._nameRefMap.set(name, ref);
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ class LocalFunctionCache extends BaseLocalCache {
|
|||
|
||||
class LocalGStateCache extends BaseLocalCache {
|
||||
set(name, ref = null, data) {
|
||||
if (!name) {
|
||||
if (typeof name !== "string") {
|
||||
throw new Error('LocalGStateCache.set - expected "name" argument.');
|
||||
}
|
||||
if (ref) {
|
||||
|
@ -135,7 +135,7 @@ class LocalGStateCache extends BaseLocalCache {
|
|||
|
||||
class LocalTilingPatternCache extends BaseLocalCache {
|
||||
set(name, ref = null, data) {
|
||||
if (!name) {
|
||||
if (typeof name !== "string") {
|
||||
throw new Error(
|
||||
'LocalTilingPatternCache.set - expected "name" argument.'
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue