summaryrefslogtreecommitdiffstats
path: root/nsplugins/viewer/resolve.h
blob: d3c747ed2e9ddba8894ca1f6766f3d81ae607ea5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
  Copyright (c) 2000 Matthias Hoelzer-Kluepfel <[email protected]>
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
*/                                                                            


#define RESOLVE_RETVAL(fname,error)           \
  kdDebug() << "NSPluginInstance::" << endl;  \
                                              \
  if (!_handle)                               \
    return error;                             \
                                              \
  if (!func_ ## fname)                        \
    func_ ## fname = _handle->symbol("NPP_"#fname); \
                                              \
  if (!func_ ## fname)                        \
  {                                           \
    kdDebug() << "Failed: NPP_" << endl;      \
    return error;                             \
  }                                           \
  kdDebug() << "Resolved NPP_" << endl;


#define RESOLVE(fname) RESOLVE_RETVAL(fname, NPERR_GENERIC_ERROR)
#define RESOLVE_VOID(fname) RESOLVE_RETVAL(fname, ;)


#define CHECK(fname,error)                    \
  kdDebug() << "Result of " << #fname << ":" << error << endl;          \
  return error;