Wordpress插件

I'm trying to use a widget within a plugin in wordpress and I'm seeing this error within the widget box:

Warning: extract() [function.extract]: First argument should be an array in /nfs/c03/h04/mnt/57957/domains/rab.qbessi.com/html/wp-content/plugins/register-plus/dash_widget.php on line 24

This is the code from Line 24:

    // Output the widget contents
    function widget( $args ) {
        extract( $args, EXTR_SKIP );

Here's the dash_widget.php code

<?php
if( !class_exists('RegisterPlusWidget') ){
    class RegisterPlusWidget{
        function RegisterPlusWidget() { //contructor
            // Add the widget to the dashboard
            add_action( 'wp_dashboard_setup', array($this, 'register_widget') );
            add_filter( 'wp_dashboard_widgets', array($this, 'add_widget') );       
        }
        function register_widget() {
            wp_register_sidebar_widget( 'regplus_invite_tracking', __( 'Invitation Code Tracking', 'regplus' ), array($this, 'widget'), array( 'settings' => 'options-general.php?page=register-plus' ) );
        }
        // Modifies the array of dashboard widgets and adds this plugin's
        function add_widget( $widgets ) {
            global $wp_registered_widgets;

            if ( !isset($wp_registered_widgets['regplus_invite_tracking']) ) return $widgets;

            array_splice( $widgets, 2, 0, 'regplus_invite_tracking' );

            return $widgets;
        }
        // Output the widget contents
        function widget( $args ) {
            extract( $args, EXTR_SKIP );

            echo $before_widget;

            echo $before_title;
            echo $widget_name;
            echo $after_title;

            global $wpdb;
            $regplus = get_option( 'register_plus' );
            $codes = $regplus['codepass'];
            $usercodes = array();
            foreach($codes as $code){
                $users = $wpdb->get_results( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key='invite_code' AND meta_value='$code'" );
                echo '<h3>' . $code . ': <small style="font-weight:normal">' . count($users) . ' Users Registered.</small></h3>';
            }       
            echo $after_widget;
        }
    }
} # End Class RegisterPlusWidget

// Start this plugin once all other plugins are fully loaded
add_action( 'plugins_loaded', create_function( '', 'global $regplus_widget; $regplus_widget = new RegisterPlusWidget();' ) );
?>

The widget() function is being called with no parameters. Why, is hard to tell without digging deeply into the plugin. You should ask the plugin's author. You can try adding

// Output the widget contents
function widget( $args ) {
    if (is_array($args))  // Add this
    extract( $args, EXTR_SKIP );

and see whether the output still makes sense then. That effectively just suppresses the action that causes the warning. If it's a badly programmed plugin that was developed with warnings turned off, that already may do the trick.