ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/BDB/BDB.xs
(Generate patch)

Comparing BDB/BDB.xs (file contents):
Revision 1.56 by root, Mon Sep 29 02:59:08 2008 UTC vs.
Revision 1.58 by root, Tue Sep 30 17:03:07 2008 UTC

350 abort (); 350 abort ();
351} 351}
352 352
353static int poll_cb (void); 353static int poll_cb (void);
354static void req_free (bdb_req req); 354static void req_free (bdb_req req);
355static void req_cancel (bdb_req req);
356 355
357static int req_invoke (bdb_req req) 356static int req_invoke (bdb_req req)
358{ 357{
359 switch (req->type) 358 switch (req->type)
360 { 359 {
1135 } 1134 }
1136 1135
1137 return 0; 1136 return 0;
1138} 1137}
1139 1138
1140/* stupid windoes defined CALLBACK as well */ 1139/* stupid windows defines CALLBACK as well */
1141#undef CALLBACK 1140#undef CALLBACK
1142#define CALLBACK SV *cb = pop_callback (&items, ST (items - 1)); 1141#define CALLBACK SV *cb = pop_callback (&items, ST (items - 1));
1143 1142
1144MODULE = BDB PACKAGE = BDB 1143MODULE = BDB PACKAGE = BDB
1145 1144
1912 CODE: 1911 CODE:
1913{ 1912{
1914 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) 1913 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key))
1915 croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET"); 1914 croak ("db_c_get was passed a read-only/constant 'key' argument but operation is not DB_SET");
1916 1915
1916 {
1917 dREQ (REQ_C_GET, 1); 1917 dREQ (REQ_C_GET, 1);
1918 req->dbc = dbc; 1918 req->dbc = dbc;
1919 req->uint1 = flags; 1919 req->uint1 = flags;
1920 if (flags & DB_OPFLAGS_MASK == DB_SET) 1920 if (flags & DB_OPFLAGS_MASK == DB_SET)
1921 sv_to_dbt (&req->dbt1, key); 1921 sv_to_dbt (&req->dbt1, key);
1922 else 1922 else
1923 { 1923 {
1924 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE) 1924 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE)
1925 sv_to_dbt (&req->dbt1, key); 1925 sv_to_dbt (&req->dbt1, key);
1926 else 1926 else
1927 req->dbt1.flags = DB_DBT_MALLOC; 1927 req->dbt1.flags = DB_DBT_MALLOC;
1928 1928
1929 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key); 1929 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key);
1930 } 1930 }
1931 1931
1932 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH 1932 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH
1933 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE) 1933 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE)
1934 sv_to_dbt (&req->dbt3, data); 1934 sv_to_dbt (&req->dbt3, data);
1935 else 1935 else
1936 req->dbt3.flags = DB_DBT_MALLOC; 1936 req->dbt3.flags = DB_DBT_MALLOC;
1937 1937
1938 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data); 1938 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data);
1939 REQ_SEND; 1939 REQ_SEND;
1940 }
1940} 1941}
1941 1942
1942void 1943void
1943db_c_pget (DBC *dbc, SV *key, SV_mutable *pkey, SV_mutable *data, U32 flags = 0, SV *callback = 0) 1944db_c_pget (DBC *dbc, SV *key, SV_mutable *pkey, SV_mutable *data, U32 flags = 0, SV *callback = 0)
1944 PREINIT: 1945 PREINIT:
1946 CODE: 1947 CODE:
1947{ 1948{
1948 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key)) 1949 if (flags & DB_OPFLAGS_MASK != DB_SET && SvREADONLY (key))
1949 croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET"); 1950 croak ("db_c_pget was passed a read-only/constant 'key' argument but operation is not DB_SET");
1950 1951
1952 {
1951 dREQ (REQ_C_PGET, 1); 1953 dREQ (REQ_C_PGET, 1);
1952 req->dbc = dbc; 1954 req->dbc = dbc;
1953 req->uint1 = flags; 1955 req->uint1 = flags;
1954 if (flags & DB_OPFLAGS_MASK == DB_SET) 1956 if (flags & DB_OPFLAGS_MASK == DB_SET)
1955 sv_to_dbt (&req->dbt1, key); 1957 sv_to_dbt (&req->dbt1, key);
1956 else 1958 else
1957 { 1959 {
1958 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE) 1960 if (flags & DB_OPFLAGS_MASK == DB_SET_RANGE)
1959 sv_to_dbt (&req->dbt1, key); 1961 sv_to_dbt (&req->dbt1, key);
1960 else 1962 else
1961 req->dbt1.flags = DB_DBT_MALLOC; 1963 req->dbt1.flags = DB_DBT_MALLOC;
1962 1964
1963 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key); 1965 req->sv1 = SvREFCNT_inc (key); SvREADONLY_on (key);
1964 } 1966 }
1965 1967
1966 req->dbt2.flags = DB_DBT_MALLOC; 1968 req->dbt2.flags = DB_DBT_MALLOC;
1967 req->sv2 = SvREFCNT_inc (pkey); SvREADONLY_on (pkey); 1969 req->sv2 = SvREFCNT_inc (pkey); SvREADONLY_on (pkey);
1968 1970
1969 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH 1971 if (flags & DB_OPFLAGS_MASK == DB_GET_BOTH
1970 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE) 1972 || flags & DB_OPFLAGS_MASK == DB_GET_BOTH_RANGE)
1971 sv_to_dbt (&req->dbt3, data); 1973 sv_to_dbt (&req->dbt3, data);
1972 else 1974 else
1973 req->dbt3.flags = DB_DBT_MALLOC; 1975 req->dbt3.flags = DB_DBT_MALLOC;
1974 1976
1975 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data); 1977 req->sv3 = SvREFCNT_inc (data); SvREADONLY_on (data);
1976 REQ_SEND; 1978 REQ_SEND;
1979 }
1977} 1980}
1978 1981
1979void 1982void
1980db_c_del (DBC *dbc, U32 flags = 0, SV *callback = 0) 1983db_c_del (DBC *dbc, U32 flags = 0, SV *callback = 0)
1981 PREINIT: 1984 PREINIT:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines