diff --git a/dtool/src/build/ctaddtgt b/dtool/src/build/ctaddtgt index 4212219c06..aca3d9fb00 100755 --- a/dtool/src/build/ctaddtgt +++ b/dtool/src/build/ctaddtgt @@ -45,16 +45,16 @@ while ( @arglist != () ) { require "$tool/inc/ctinstmake.pl" ; require "$tool/inc/ctcm.pl" ; - $item = "$projroot/src/all/$pkgname" ; + $item = "$projroot/src/$pkgname" ; if ( ! &CTCMCheckout( $item, $projname, $spec )) { die "Could not checkout package '" . $pkgname . "'\n" ; } - $item = "$projroot/src/all/$pkgname/Makefile" ; + $item = "$projroot/src/$pkgname/Makefile" ; if ( ! &CTCMCheckout( $item, $projname, $spec )) { die "Could not checkout package '" . $pkgname . "' Makefile\n" ; } - $curdir = "$projroot/src/all/$pkgname" ; + $curdir = "$projroot/src/$pkgname" ; # install target makefile, and update package makefile if ( $type eq "bin" ) { &CTInstallMake( "$tool/lib/Makefile.bin.template", diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index 5a55b8f8bc..24d8189252 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -1842,6 +1842,12 @@ define_wrapped_type(InterrogateType &itype, CPPConstType *cpptype) { void InterrogateBuilder:: define_struct_type(InterrogateType &itype, CPPStructType *cpptype, bool forced) { + if (cpptype->get_simple_name().empty()) { + // If the type has no name, forget it. We don't export anonymous + // types. + return; + } + cpptype = TypeManager::resolve_type(cpptype)->as_struct_type(); assert(cpptype != (CPPStructType *)NULL); cpptype->check_virtual(); diff --git a/dtool/src/interrogate/typeManager.cxx b/dtool/src/interrogate/typeManager.cxx index 5e2f5b104e..1d7abf073b 100644 --- a/dtool/src/interrogate/typeManager.cxx +++ b/dtool/src/interrogate/typeManager.cxx @@ -34,6 +34,11 @@ resolve_type(CPPType *type, CPPScope *scope) { type = type->resolve_type(scope, &parser); string name = type->get_local_name(&parser); + if (name.empty()) { + // Don't try to resolve unnamed types. + return type; + } + CPPType *new_type = parser.parse_type(name); if (new_type == (CPPType *)NULL) { nout << "Type " << name << " is unknown to parser.\n";