Skip to content

Commit 23961e2

Browse files
kbayescopybara-github
authored andcommitted
Refactor user codebase to use LoadResource helper method.
* Fix small bug when registering resource providers. * Add test cases for OS filesystem fallback with VFS. * Rewrite LoadModelFromString using a resource provider (now can pass custom VFSs). PiperOrigin-RevId: 526959705 Change-Id: Iee1773e5584535d868aab6b206d1bf362e600c8a
1 parent c2115a1 commit 23961e2

File tree

10 files changed

+445
-273
lines changed

10 files changed

+445
-273
lines changed

src/engine/engine_plugin.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ int mjp_registerResourceProviderInternal(const mjpResourceProvider* provider) {
588588
break;
589589
}
590590

591-
if (!vfs_provider) {
591+
if (!vfs_provider && existing.prefix != nullptr) {
592592
int n = std::strlen(provider->prefix);
593593
int m = std::strlen(existing.prefix);
594594

src/engine/engine_resource.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
#include <stdio.h>
2020
#include <string.h>
2121

22+
#include <mujoco/mjmodel.h>
23+
#include <mujoco/mjplugin.h>
2224
#include "engine/engine_plugin.h"
2325
#include "engine/engine_util_errmem.h"
2426

@@ -59,7 +61,9 @@ mjResource* mju_openResource(const char* name, int default_provider) {
5961
return resource;
6062
}
6163

62-
mju_warning("mju_openResource: could not open resource '%s", name);
64+
mju_warning("mju_openResource: could not open resource '%s' "
65+
"using a resource provider matching prefix '%s'",
66+
name, provider->prefix);
6367
mju_free(resource->name);
6468
mju_free(resource);
6569
return NULL;
@@ -69,7 +73,8 @@ mjResource* mju_openResource(const char* name, int default_provider) {
6973
if (default_provider > 0) {
7074
provider = mjp_getResourceProviderAtSlot(default_provider);
7175
if (provider == NULL) {
72-
mju_warning("mju_openResource: unknown resource provider");
76+
mju_warning("mju_openResource: unknown resource provider at slot %d",
77+
default_provider);
7378
mju_free(resource->name);
7479
mju_free(resource);
7580
return NULL;
@@ -81,7 +86,9 @@ mjResource* mju_openResource(const char* name, int default_provider) {
8186
return resource;
8287
}
8388

84-
mju_warning("mju_openResource: could not open resource '%s", name);
89+
mju_warning("mju_openResource: could not open resource '%s' "
90+
"with default provider at slot %d",
91+
name, default_provider);
8592
mju_free(resource->name);
8693
mju_free(resource);
8794
return NULL;

0 commit comments

Comments
 (0)