Change ServerSocket class so we don't have to subclass it...
authorbdemsky <bdemsky>
Fri, 13 Oct 2006 08:36:50 +0000 (08:36 +0000)
committerbdemsky <bdemsky>
Fri, 13 Oct 2006 08:36:50 +0000 (08:36 +0000)
Robust/src/ClassLibrary/ServerSocket.java
Robust/src/IR/Tree/SemanticCheck.java

index d99ff83e342900315ae8687a0cb383e8b32b4de6..51dd73e94575720160168c93ba325776faf5d910 100644 (file)
@@ -17,6 +17,12 @@ public class ServerSocket {
        return s;
     }
 
+    /* Lets caller pass in their own Socket object. */
+    public void accept(Socket s) {
+       int newfd=nativeaccept(s);
+       s.setFD(newfd);
+    }
+
     private native int nativeaccept(Socket s);
     
     public void close();
index a2cd5122e6718195be67c97a1a71d24bf48dcd58..47dcc524f8634ea3ed41799aac6d297a6f3b41c7 100644 (file)
@@ -262,7 +262,10 @@ public class SemanticCheck {
            throw new Error("Illegal return appears in Task: "+d.getSymbol());
        MethodDescriptor md=(MethodDescriptor)d;
        if (rn.getReturnExpression()!=null)
-           checkExpressionNode(md, nametable, rn.getReturnExpression(), md.getReturnType());
+           if (md.getReturnType().isVoid())
+               throw new Error(md+" is void");
+           else
+               checkExpressionNode(md, nametable, rn.getReturnExpression(), md.getReturnType());
        else
            if (md.getReturnType()!=null&&!md.getReturnType().isVoid())
                throw new Error("Need to return something for "+md);