diff options
author | Douglas Lankshear <doug@lankshear.net> | 1998-06-19 03:59:50 -0700 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-06-21 06:27:57 +0000 |
commit | 0f4eea8fa1779e08575278392ed398ffeda6dcd2 (patch) | |
tree | c54698f2d90c2834241f5b59fd235394221bc509 /win32/win32.h | |
parent | 01ae956fe72e02d2484c49d0844f75517893b01d (diff) | |
download | perl-0f4eea8fa1779e08575278392ed398ffeda6dcd2.tar.gz |
applied patch, along with many changes:
- ipfoo.h headers have been coalesced along with perlfoo.h into
iperlsys.h
- win32/cp*.h have been combined in perlhost.h
- CPerlObj::PerlParse() takes an extra xsinit arg
- tweaks to get dl_win32.xs compiling again w/ PERL_OBJECT
Message-Id: <000001bd9b8c$0417fe90$a32fa8c0@tau.Active>
Subject: RE: [PATCH 5.004_67] Fixes for broken MS compiler
p4raw-id: //depot/perl@1172
Diffstat (limited to 'win32/win32.h')
-rw-r--r-- | win32/win32.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/win32/win32.h b/win32/win32.h index eaced2821e..e1cf335435 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -152,6 +152,55 @@ typedef long uid_t; typedef long gid_t; #pragma warning(disable: 4018 4035 4101 4102 4244 4245 4761) +#ifndef PERL_OBJECT + +/* Visual C thinks that a pointer to a member variable is 16 bytes in size. */ +#define STRUCT_MGVTBL_DEFINITION \ +struct mgvtbl { \ + union { \ + int (CPERLscope(*svt_get)) _((SV *sv, MAGIC* mg)); \ + char handle_VC_problem1[16]; \ + }; \ + union { \ + int (CPERLscope(*svt_set)) _((SV *sv, MAGIC* mg)); \ + char handle_VC_problem2[16]; \ + }; \ + union { \ + U32 (CPERLscope(*svt_len)) _((SV *sv, MAGIC* mg)); \ + char handle_VC_problem3[16]; \ + }; \ + union { \ + int (CPERLscope(*svt_clear)) _((SV *sv, MAGIC* mg)); \ + char handle_VC_problem4[16]; \ + }; \ + union { \ + int (CPERLscope(*svt_free)) _((SV *sv, MAGIC* mg)); \ + char handle_VC_problem5[16]; \ + }; \ +} + +#define BASEOP_DEFINITION \ + OP* op_next; \ + OP* op_sibling; \ + OP* (CPERLscope(*op_ppaddr))_((ARGSproto)); \ + char handle_VC_problem[12]; \ + PADOFFSET op_targ; \ + OPCODE op_type; \ + U16 op_seq; \ + U8 op_flags; \ + U8 op_private; + +#define UNION_ANY_DEFINITION union any { \ + void* any_ptr; \ + I32 any_i32; \ + IV any_iv; \ + long any_long; \ + void (CPERLscope(*any_dptr)) _((void*)); \ + char handle_VC_problem[16]; \ +} + +#endif /* PERL_OBJECT */ + #endif /* _MSC_VER */ #ifdef __MINGW32__ /* Minimal Gnu-Win32 */ |