git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7698 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-10-20 15:42:48 +00:00
commit b6a927c84c
2 changed files with 26 additions and 10 deletions

View file

@ -51,4 +51,17 @@
// declaration:
// using A::get_a;
};
class IndexReader{
public:
virtual void norms() = 0;
};
class MultiReader : public IndexReader {
protected:
MultiReader();
};
%}

View file

@ -310,7 +310,9 @@ class Allocate : public Dispatcher {
}
List *abstract = Getattr(base,"abstract");
if (abstract) {
for (int i = 0; i < Len(abstract); i++) {
int dabstract = 0;
int len = Len(abstract);
for (int i = 0; i < len; i++) {
Node *nn = Getitem(abstract,i);
String *name = Getattr(nn,"name");
if (!name) continue;
@ -326,17 +328,19 @@ class Allocate : public Dispatcher {
Delete(base_decl);
if (!dn) {
List *abstract = Getattr(n,"abstract");
if (!abstract) {
abstract = NewList();
Setattr(n,"abstract",abstract);
} else {
if (!Getattr(n,"abstract:firstnode"))
Setattr(n,"abstract:firstnode",nn);
List *nabstract = Getattr(n,"abstract");
if (!nabstract) {
nabstract = NewList();
Setattr(n,"abstract",nabstract);
}
Append(abstract,nn);
Append(nabstract,nn);
if (!Getattr(n,"abstract:firstnode")) {
Setattr(n,"abstract:firstnode",nn);
}
dabstract = base != n;
}
}
if (dabstract) return 1;
}
List *bases = Getattr(base,"allbases");
if (!bases) return 0;
@ -537,7 +541,6 @@ public:
/* Check if the class is abstract via inheritance. This might occur if a class didn't have
any pure virtual methods of its own, but it didn't implement all of the pure methods in
a base class */
if (!Getattr(n,"abstract") && is_abstract_inherit(n)) {
if (((Getattr(n,"allocate:public_constructor") || (!GetFlag(n,"feature:nodefault") && !Getattr(n,"allocate:has_constructor"))))) {
if (!GetFlag(n,"feature:notabstract")) {